首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQL语句:增加一个字段到特定的位置

2012-01-07 
求助SQL语句:增加一个字段到特定的位置!create table a (a varchar(1) null,c varchar(1) null)怎么才能

求助SQL语句:增加一个字段到特定的位置!
create table a (a varchar(1) null,c varchar(1) null);
怎么才能在字段c前面增加一个字段b,SQL语句怎么写!谢了!

[解决办法]
SQL可以实现添加列到指定位置


SQL code
--开启系统表写功能以便创建存储过程EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDEGOCREATE PROC sp_addColumn@TableName sysname,              --要添加字段的表名@FieldDefine nvarchar(1000),   --要添加的列的定义,定义必须符合ALTER TABLE tbname ADD规范@Position   int=-1                --添加列位置,其值为1~表的总列数,比如1,表示添加为第1列,           --                             如果@Position无效,则仅添加列ASIF ISNULL(OBJECTPROPERTY(OBJECT_ID(@TableName),'IsUserTable'),0)=0BEGIN    RAISERROR(N'无效的表名 "%s"',12,16,@TableName)    returnEND--添加字段DECLARE @s nvarchar(4000)SET @s=N'ALTER TABLE '+QUOTENAME(@TableName)+N' ADD '+@FieldDefineBEGIN TRAN    EXEC sp_executesql @s    IF @@ERROR=0    BEGIN        DECLARE @maxcolid int        SELECT @Position=ISNULL(@Position,0),@maxcolid=MAX(colid)         FROM syscolumns        WHERE id=OBJECT_ID(@TableName)        IF @Position>0 AND @Position<@maxcolid            UPDATE syscolumns SET                 colid=CASE colid WHEN @maxcolid THEN @Position ELSE colid+1 END,                colorder=CASE colid WHEN @maxcolid THEN @Position ELSE colid+1 END            WHERE id=OBJECT_ID(@TableName)                AND colid>=@Position        COMMIT TRAN    END    ELSE        ROLLBACK TRANGO--关闭系统表写功能EXEC sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE 

热点排行