4

SQL Serverで、以下のシナリオを実現する簡単な方法はありますか?

私のテーブルの1つには、約20の列と、生成された番号を配置する主キーフィールドがあります(自動生成されたフィールドではありません)。理由から、特定の主キー値のレコードを異なる主キー値で複製したかったのです。

したがって、これは私のテーブルデータである可能性があります(KEYxxxが主キーフィールドであると想定します)

KEY001  AA1  AA2 AA3 AA4 ... AA20
KEY002  AA1  AA2 AA3 AA4 ... AA20

同じデータで新しい行を挿入しようとしていますKEY001KEY002

ここでこのクエリを使用してこれを実行しようとしましたが、失敗しましたKEY002。このクエリに新しい主キー値()を挿入する方法が見つかりませんでした。

INSERT INTO mytable (FIELD1, field2,...field20) 
    SELECT (FIELD1, field2,... field20) 
    WHERE field_primary_key = 'KEY001' 
4

1 に答える 1

7

SELECTリストでPK列を指定する代わりに、新しいキーのリテラル値に置き換えます。

INSERT INTO mytable (FIELD_PK, field2,...field20) 
SELECT 'KEY002', field2,...field20
from mytable
where field_primary_key='KEY001'
于 2012-04-27T21:24:41.900 に答える