添加列但无法更新新列
Added column but cannot update the new column
我有一个现有的 table [ops].[Table]
我想要:
- 首先检查列名
[ColName]
是否存在。
- 如果没有,则将列添加到 table。
- 将默认类型设置为十进制,并将所有值更新为 0。
- 强制 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
中设置 DEFAULT
和 NOT NULL
属性?
ALTER TABLE ops.[Table] ADD ColName Decimal(28,12) NOT NULL DEFAULT 0 WITH VALUES;
我有一个现有的 table [ops].[Table]
我想要:
- 首先检查列名
[ColName]
是否存在。 - 如果没有,则将列添加到 table。
- 将默认类型设置为十进制,并将所有值更新为 0。
- 强制 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
中设置 DEFAULT
和 NOT NULL
属性?
ALTER TABLE ops.[Table] ADD ColName Decimal(28,12) NOT NULL DEFAULT 0 WITH VALUES;