0

私は次のような展開スクリプトを書いています

  1. デフォルト値が0で、Null可能である新しい列を作成します
  2. 特定の条件が満たされた列データを更新します

また、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の実行

4

1 に答える 1

1

alterステートメントの後にGOを使用 し、

ALTER TABLE dbo.accountCurrencies 
    ADD isConvertWithDivison BIT NULL DEFAULT 0

go

UPDATE dbo.accountCurrencies SET  isConvertWithDivison = 1 WHERE  currencyName = 'USD'  

go
INSERT dbo.accountCurrencies 
        ( currencyName)
VALUES  ( 'AUD'),( 'DKK'),( 'RUB'),( 'SEK')
于 2012-08-08T11:29:04.160 に答える