我正在编写一个部署脚本
- 创建一个默认值为 0 且可以为 Null 的新列
- UPDATE满足某个条件的列数据
另请注意,如果我在 INSERT 语句中将默认值显式设置为 0,则在更新数据时会收到相同的错误-
错误信息 -
列名“isConvertWithDivison”无效。
我正在使用的 SQL -
ALTER TABLE dbo.accountCurrencies
ADD isConvertWithDivison BIT NULL DEFAULT 0
UPDATE dbo.accountCurrencies SET isConvertWithDivison = 1 WHERE currencyName = 'USD'
INSERT dbo.accountCurrencies
( currencyName)
VALUES ( 'AUD'),( 'DKK'),( 'RUB'),( 'SEK')
似乎很明显发生了什么,但我该如何解决这个问题?
在执行数据更改之前,我已经尝试过将新列提交到数据库,但仍然没有运气。
BEGIN TRANSACTION
ALTER TABLE dbo.accountCurrencies
ADD isConvertWithDivison BIT NULL DEFAULT 0
COMMIT TRANSACTION
UPDATE dbo.accountCurrencies SET isConvertWithDivison = 1 WHERE currencyName = 'USD'
INSERT dbo.accountCurrencies
( currencyName)
VALUES ( 'AUD'),( 'DKK'),( 'RUB'),( 'SEK')
仅供参考 - 运行 SQL 2008 R2