Sql server 如何在SQL Server中添加和更新列中的值

Sql server 如何在SQL Server中添加和更新列中的值,sql-server,Sql Server,我有一张这样的桌子: A B C D ---------------- 1 2 3 4 3 4 3 2 2 3 9 8 1 1 5 5 3 4 6 7 A、 B、C和D是列。我想添加另一列E和设置值 根据第C列中的值计算E 我的代码是: ALTER TABLE Letters ADD E UPDATE Letters SET E = 0 WHERE C = 9 但是,当我尝试更新它时,在表中找

我有一张这样的桌子:

A    B   C    D
----------------
1    2   3    4
3    4   3    2
2    3   9    8
1    1   5    5
3    4   6    7
A、 B、C和D是列。我想添加另一列E和设置值 根据第C列中的值计算E

我的代码是:

ALTER TABLE Letters 
ADD E

UPDATE Letters
SET E = 0
WHERE C = 9
但是,当我尝试更新它时,在表中找不到E。当我这样做时:

select * from Letters
将显示列E,但使用set方法时无法访问E


为什么会这样?我该如何解决这个问题?

您需要添加一个GO;他们之间的声明。当您尝试一次运行所有数据时,它会将其视为单个批处理。因此,在提交事务之前不会更新表,在整个脚本完成之前也不会更新表。GO提交更改,然后select将看到这些更改

ALTER TABLE Letters 
ADD E INT

GO;

UPDATE Letters
SET E = 0
WHERE C = 9

你需要添加一个GO;他们之间的声明。当您尝试一次运行所有数据时,它会将其视为单个批处理。因此,在提交事务之前不会更新表,在整个脚本完成之前也不会更新表。GO提交更改,然后select将看到这些更改

ALTER TABLE Letters 
ADD E INT

GO;

UPDATE Letters
SET E = 0
WHERE C = 9