SQL 脚本不工作,但个别查询工作
问题描述:
我正在使用以下脚本向我的表中添加一列.当我在查询窗口中点击 F5 时,它会在第二次更新查询中出现 fkRefTabNo
不存在的错误.
I am using the following script to add a column to my table. When I hit F5 in the query window it gives an error on the 2nd update query that fkRefTabNo
doesn't exist.
ALTER TABLE EPFieldSQLScripts
ADD fkRefTabNo int DEFAULT 1
update EPFieldSQLScripts
set fkRefTabNo = 1
where fkRefTabNo is null
ALTER TABLE EPFieldSQLScripts
ALTER COLUMN fkRefTabNo INTEGER NOT NULL
但是当我一一运行这些查询时,它没有给出错误.谁能告诉我这个脚本有什么问题?
But when I run these queries one by one, it doesn't give an error. Can anyone tell me what is wrong with this script?
答
在语句之间放置 GO
.这样,每条语句的结果将在运行下一条之前提交(每条语句将是一个单独的事务).
Put GO
between statements. This way the result of each statement will be committed before running the next one (each statement will be a separate transaction).
ALTER TABLE EPFieldSQLScripts
ADD fkRefTabNo int DEFAULT 1
GO
update EPFieldSQLScripts
set fkRefTabNo = 1
where fkRefTabNo is null
GO
ALTER TABLE EPFieldSQLScripts
ALTER COLUMN fkRefTabNo INTEGER NOT NULL