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

sql语句动态添加列,该怎么处理

2012-02-20 
sql语句动态添加列CREATETABLE#doc_exa(column_aINT)ALTERTABLE#doc_exaADDcolumn_bVARCHAR(20)NULLinsert

sql语句动态添加列
CREATE   TABLE   #doc_exa   (   column_a   INT)  

ALTER   TABLE   #doc_exa   ADD   column_b   VARCHAR(20)   NULL

insert   into   #doc_exa(column_b)
values( 'df ')

但是,弹出错误,说列名column_b无效


但是   select   *   from   #doc_exa,可以显示
column_a,column_b

[解决办法]
CREATE TABLE #doc_exa ( column_a INT)

ALTER TABLE #doc_exa ADD column_b VARCHAR(20) NULL
go

insert into #doc_exa(column_b)
values( 'df ')

[解决办法]
CREATE TABLE #doc_exa ( column_a INT)

ALTER TABLE #doc_exa ADD column_b VARCHAR(20) NULL
go --用GO先把它提交了

insert into #doc_exa(column_b)
values( 'df ')
[解决办法]
楼上正解,,,,

PS:又用错马甲了?^*^
[解决办法]
--或者通过EXEC解决

CREATE TABLE #doc_exa ( column_a INT)

ALTER TABLE #doc_exa ADD column_b VARCHAR(20) NULL

exec ( 'insert into #doc_exa(column_b) values( ' 'df ' ') ')

[解决办法]
楼上成了小楼的楼上,,,
[解决办法]
用 GO 的时候必须注意

GO 之前的变量,到生命周期到 GO 结束:

declare @i varchar(10)
set @i = 'abc '
print @i
go

print @i
/*
服务器: 消息 137,级别 15,状态 2,行 2
必须声明变量 '@i '。
*/
[解决办法]
我在2005里直接运行了一下楼主的代码,没有问题。

--
CREATE TABLE #doc_exa ( column_a INT)

ALTER TABLE #doc_exa ADD column_b VARCHAR(20) NULL;--加个“;”号,不用“GO”应该也可以

insert into #doc_exa(column_b)
values( 'df ')
[解决办法]
在2000里面。要用exec执行
才可以,可能是bug吧

热点排行
Bad Request.