私は次のような展開スクリプトを書いています
- デフォルト値が0で、Null可能である新しい列を作成します
- 特定の条件が満たされた列データを更新します
また、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')
参考までに-SQL2008R2の実行