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

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

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

declare @colid_max int
declare @sql varchar(1000) --動(dòng)態(tài)sql語(yǔ)句
--------------------------------------------------
if not exists(select 1 from sysobjects
where name = @tablename and xtype = 'u')
begin
raiserror 20001 '沒(méi)有這個(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è)新列不成功,請(qǐng)檢查你的列類(lèi)型是否正確'
return -1
end
--------------------------------------------------
--打開(kāi)修改系統(tǒng)表的開(kāi)關(guān)
EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE

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

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

--將新列列號(hào)復(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)表的開(kāi)關(guān)
EXEC sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE
go 

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

相關(guān)文章

最新評(píng)論

额尔古纳市| 江津市| 宁国市| 新干县| 庆城县| 砀山县| 巴塘县| 石棉县| 图木舒克市| 万山特区| 合江县| 瑞丽市| 贵南县| 灵寿县| 民权县| 祁门县| 沈阳市| 岳西县| 秦皇岛市| 澄江县| 安图县| 东至县| 永德县| 绥化市| 左权县| 苍溪县| 曲沃县| 乌拉特前旗| 城口县| 成都市| 阜城县| 涡阳县| 沁水县| 宁武县| 临朐县| 柳州市| 韶关市| 格尔木市| 木里| 天峨县| 威远县|