1

SQL Server データベースに 2 つのほぼ同一のテーブル A と B があります。

テーブル A には、データと に設定された主キー X が含まれていIs Identity == Noます。

テーブル B にはデータが含まれていませんが、主キー X がIs Identity == Yes(に設定されていますIdentity Increment = 1, Identity Seed = 1)。

主キー X のデータは 1 ずつ 100 ずつ増加します。つまり、テーブル A には 100 のレコードがあり、最初のレコードは 1 で、100 番目のレコードは 100 です。

エラーなしで最も簡単な方法でテーブル A からテーブル B にデータをコピーするにはどうすればよいですか。

4

3 に答える 3

5

set identity_insert tableB onを実行する前に使用しますinsert

 set identity_insert tableB on

 insert tableB (Id, field1, field2)
 select id, field1, field2 from tablea

 set identity_insert tableB off
于 2013-10-16T08:44:33.010 に答える
0

tableA に 100 行あり、id が 1 から 100 で繰り返しなしであることが確実な場合は、次のように tableA のデータを tableB に簡単にコピーできます。

insert tableB (field1, field2) 
select field1, field2 from tableA order by id

Id フィールドは ID 列であるため、自動的に生成されます

于 2013-10-16T09:40:26.227 に答える
0

はい、列を列挙する必要があります。一方、B テーブルには ID が必要ですが、A から取得されていますか?

主キー X のデータは 1 ずつ 100 ずつ増加します。つまり、テーブル A には 100 のレコードがあり、最初のレコードは 1 で、100 番目のレコードは 100 です。

このルールに従うと、ID はテーブル A から取得されますが、B のインクリメントは不要のようです。

最終的には、IDENT_CURRENT の制限を満たすために B で RESEED することを検討してください。(リシード情報)

于 2013-10-16T09:19:26.923 に答える