sql >> データベース >  >> RDS >> Sqlserver

テーブルを変更してから、1つのステートメントで更新します

    これを正確に行うことはできません 単一のステートメント(またはバッチ)で、使用しているツールが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;
    

    ただし、これは元のクエリとまったく同じではありません。デフォルトの制約が残され、削除する必要がある場合があるためです。



    1. JAVAERROR1070のPIGUDF

    2. データベース要約レポートを送信する自動電子メールシステム

    3. JComboboxは表示されません

    4. mysqlコマンドラインクエリの結果をbashスクリプト変数に入れます