添加列但无法更新新列

Added column but cannot update the new column

我有一个现有的 table [ops].[Table] 我想要:

  1. 首先检查列名[ColName]是否存在。
  2. 如果没有,则将列添加到 table。
  3. 将默认类型设置为十进制,并将所有值更新为 0。
  4. 强制 table 不能为空。

我编写了以下脚本来实现此目的:

IF COL_LENGTH ('ops.Table', 'ColName') IS NULL
BEGIN
ALTER TABLE [ops].[Table] ADD [ColName] DECIMAL(28,12)
UPDATE [ops].[Table] SET [ColName] = 0
ALTER TABLE [ops].[Table] ALTER COLUMN [ColName] DECIMAL(28,12) NOT NULL;
END

我遇到的问题是,在 UPDATE 语句中,SQL 告诉我 [ColName] 是一个无效的列名。

我该如何解决这个问题?这里的问题是什么?

而不是 UPDATE,为什么不在 ALTER 中设置 DEFAULTNOT NULL 属性?

ALTER TABLE ops.[Table] ADD ColName Decimal(28,12) NOT NULL DEFAULT 0 WITH VALUES;