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吧