これを正確に行うことはできません 単一のステートメント(またはバッチ)で、使用しているツールがGO
をサポートしていないようです バッチ区切り文字として。
EXEC
を使用できます ただし、子バッチで実行します。
ALTER TABLE A
ADD c1 INT, c2 VARCHAR(10);
EXEC('
UPDATE A
SET c1 = 23,
c2 = ''ZZXX'';
');
注意:文字列リテラル内でエスケープするには、クエリ内のすべての一重引用符を上記のように2倍にする必要があります。
または、デフォルトの制約を使用して、1つのステートメントで同様の結果を得ることができます。
ALTER TABLE A
ADD c1 INT NULL CONSTRAINT DF_A_c1 DEFAULT 23 WITH VALUES,
c2 VARCHAR(10) CONSTRAINT DF_A_c2 NULL DEFAULT 'ZZXX' WITH VALUES;
ただし、これは元のクエリとまったく同じではありません。デフォルトの制約が残され、削除する必要がある場合があるためです。