最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析如何用SQL語句在指定字段前面插入新的字段

 更新時(shí)間:2013年06月11日 15:47:07   作者:  
本篇文章是對如何用SQL語句在指定字段前面插入新的字段的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
create proc addcolumn
@tablename varchar(30), --表名
@colname varchar(30), --要加的列名
@coltype varchar(100), --要加的列類型
@colid int --加到第幾列
as

declare @colid_max int
declare @sql varchar(1000) --動(dòng)態(tài)sql語句
--------------------------------------------------
if not exists(select 1 from sysobjects
where name = @tablename and xtype = 'u')
begin
raiserror 20001 '沒有這個(gè)表'
return -1
end
--------------------------------------------------
if exists(select 1 from syscolumns
where id = object_id(@tablename) and name = @colname)
begin
raiserror 20002 '這個(gè)表已經(jīng)有這個(gè)列了!'
return -1
end
--------------------------------------------------
--保證該表的colid是連續(xù)的
select @colid_max = max(colid) from syscolumns where id=object_id(@tablename)

if @colid > @colid_max or @colid < 1
set @colid = @colid + 1
--------------------------------------------------
set @sql = 'alter table '+@tablename+' add '+@colname+' '+@coltype
exec(@sql)

select @colid_max = colid
from syscolumns where id = object_id(@tablename) and name = @colname
if @@rowcount <> 1
begin
raiserror 20003 '加一個(gè)新列不成功,請檢查你的列類型是否正確'
return -1
end
--------------------------------------------------
--打開修改系統(tǒng)表的開關(guān)
EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE

--將新列列號暫置為-1
set @sql = 'update syscolumns
set colid = -1
where id = object_id('''+@tablename+''')
and colid = '+cast(@colid_max as varchar(10))
exec(@sql)

--將其他列的列號加1
set @sql = 'update syscolumns
set colid = colid + 1
where id = object_id('''+@tablename+''')
and colid >= '+cast(@colid as varchar(10))
exec(@sql)

--將新列列號復(fù)位
set @sql = 'update syscolumns
set colid = '+cast(@colid as varchar(10))+'
where id = object_id('''+@tablename+''')
and name = '''+@colname +''''
exec(@sql)
--------------------------------------------------
--關(guān)閉修改系統(tǒng)表的開關(guān)
EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE
go 

調(diào)用方法:
exec addcolumn '表名','新列名','新列類型',加到第幾個(gè)位置
如:
exec addcolumn 'test','id2','char(10)',2
表示將id2這個(gè)列加到表test的第二個(gè)位置,類型是char(10)。

相關(guān)文章

最新評論

定陶县| 葫芦岛市| 文水县| 吉水县| 铁岭市| 普格县| 花莲县| 邳州市| 平顺县| 富川| 津市市| 化州市| 蒙阴县| 辽阳市| 陇南市| 岐山县| 海原县| 陕西省| 惠水县| 松阳县| 弥勒县| 武清区| 白玉县| 商丘市| 襄城县| 卓尼县| 平罗县| 铜梁县| 襄城县| 娄底市| 姚安县| 乐都县| 伊宁市| 巴林左旗| 万州区| 广州市| 安庆市| 鄂伦春自治旗| 宜宾县| 岳池县| 阿巴嘎旗|