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

动态添加列,该如何处理

2012-06-02 
动态添加列SQL codeDECLARE @COLS INTSET @COLS 32-DAY(GETDATE()+32-DAY(GETDATE()))WHILE (@COLS0)BEG

动态添加列

SQL code
DECLARE @COLS INTSET @COLS= 32-DAY(GETDATE()+32-DAY(GETDATE()))WHILE (@COLS>0)    BEGIN           ALTER TABLE KQB ADD @COLS CHAR(10)           SET @COLS=@COLS-1    END


Msg 102, Level 15, State 1, Line 7
'@COLS' 附近有语法错误。

麻烦大侠们帮看下ALTER TABLE KQB ADD @COLS CHAR(10) 这句应当怎么改写


[解决办法]
SQL code
DECLARE @COLS INTSET @COLS= 32-DAY(GETDATE()+32-DAY(GETDATE()))DECLARE @STR VARCHAR(100)SET @STR=''WHILE (@COLS>0)BEGINSET @STR='ALTER TABLE KQB ADD ['+ltrim(@COLS)+'] CHAR(10)'print @strexec(@STR)SET @COLS=@COLS-1END
[解决办法]
SQL code
DECLARE @COLS INT,        @strSql varchar(1000)SET @COLS= 32-DAY(GETDATE()+32-DAY(GETDATE()))WHILE (@COLS>0)    BEGIN          set @strSql = ' ALTER TABLE KQB ADD ['+ convert(varchar(4),@@COLS) + '] CHAR(10)'          exec (@strSql)          SET @COLS=@COLS-1    END 

热点排行