7

TransactSQLでこれを実現するにはどうすればよいですか。

既存のテーブルに新しい列を追加してから、いくつかの値で更新したいと思います。1つのSQLスクリプトでそれを行うことは可能ですか、それとも別のスクリプトを使用する必要がありますか?

これがサンプルコードです

 ALTER TABLE my_table ADD my_new_column bit NULL;

 UPDATE my_table SET my_new_column = 0;

列がまだ存在しないときに書き込みを行っていることを知っているので、これらの2行が機能していません。しかし、1つのスクリプトでこれを達成する方法、つまり、遅延を使用する方法、または列が作成されていることを確認してからデータを書き込む方法はありますか?

表から選択してIFEXISTSを使用しましたが、機能しません。

ありがとう

4

1 に答える 1

16

WITH VALUESデフォルトを追加して句を使用することにより、新しい列を追加すると同時に入力することができます。その後、不要になった場合は、最後にデフォルトを削除できます。このアプローチは、以下のように複数の列に使用できます。

ALTER TABLE [myTable]
ADD [my_new_column] [bit] NULL CONSTRAINT DF_TMP DEFAULT 0 ,
    [my_new_column2] [bit] NULL CONSTRAINT DF_TMP2 DEFAULT 1 WITH VALUES;

ALTER TABLE [myTable] DROP DF_TMP, DF_TMP2
于 2012-09-18T07:51:43.650 に答える