我想执行以下代码在一个事务中迁移的一部分,但除非我把GO
声明ADD CONSTRAINT
语句后的代码失败:如何添加列的默认值并在SQL Server中使用默认值在单个批处理中更新所有行?
ALTER TABLE T ADD C INT NULL
ALTER TABLE T ADD CONSTRAINT DF_T_C DEFAULT ((1)) FOR C
GO
UPDATE T SET C = DEFAULT
ALTER TABLE T ALTER COLUMN C INT NOT NULL
如果我离开了GO
声明,我得到以下错误:
Invalid column name 'C'.
执行迁移不能处理GO
语句的代码,我怎么能得到这个在单个事务工作?
@michielvoo - 声明不仅关闭它是完全正确的! 'CREATE TABLE #T(B INT NULL); INSERT INTO #T VALUES(10); ALTER TABLE #T ADD C INT NOT NULL CONSTRAINT DF_T_C DEFAULT((1)); SELECT * FROM #T; DROP TABLE#T' – 2011-05-18 17:43:12