笔记1 ALTER添加列后,立即UPDATE该列会报错,通过EXEC ,把UPDATE的执行计划生成放到执行时进行

来源:互联网 发布:大黄蜂数据 编辑:程序博客网 时间:2024/05/18 01:13
 1 --ALTER添加列后,立即UPDATE该列会报错,通过EXEC ,把UPDATE的执行计划生成放到执行时进行  2 --参考网址:http://social.technet.microsoft.com/Forums/zh-CN/sqlserverzhchs/thread/78f2eb47-49f4-4a33-a109-5409a87979b2 3 DROP TABLE #t 4 CREATE  TABLE #t 5 (col1 INT NOT NULL 6 ) 7 GO 8 INSERT INTO #t SELECT 9 1;10 SELECT * FROM #t11 ALTER TABLE #t ADD col2 INT12 13 --UPDATE #t SET col2=0 WHERE col1 =114 --这里会报列名无效,15 --因为当你把 alter table 和 update 放在一齐的时候,在分析并生成执行计划这步,由于列不存在,所以无法为 update 生成执行计划,16 --所以就报错了17 18 --方法一:19 --GO 可以使用GO但是会把以前的事务全部提交,详见参考网址20 21 22 23 --方法二:24 --EXEC('UPDATE #t SET col2 = 0 where col1=1')25 SELECT * FROM #t 
0 0