读书人

动态添加列,该如何处理

发布时间: 2012-06-02 14:16:14 作者: rapoo

动态添加列

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 

读书人网 >SQL Server

热点推荐