0

オブジェクト グラフには 100 万個弱のノードがあり、ほとんどが切断されており、まとめてインポートする必要があります。

キーはすべてサーバーで生成されます。リレーションシップにはいくつかのレベルがあるため、各バッチが挿入された後、正しい ID キーを取得して、次のバッチで外部キー値として使用する必要があります。

これを行う最も簡単な方法は何ですか? からの出力はありBULK INSERTますか?

または、テーブルの現在の増分 ID 値を調整して、挿入する行数に余裕を持たせ、クライアント側でこれらの数値から ID を割り当て、ID 挿入を使用して一括コピーするとうまくいくでしょうか? たとえば、次の増分 ID が 120,001 で、挿入する行が 600,000 行ある場合、次の ID を 720,001 に設定し、120,001 から 720,000 までの数字を手動で ID として使用してから挿入しますか?

declare @lastID int, @newLastID int;

begin tran
    set @lastID = ident_current('dbo.Strains');
    set @newLastID = @lastID + 1000;

    dbcc checkident('dbo.Strains', reseed, @newLastID);
commit

select @lastID + 1;
4

1 に答える 1

1

merge..output を使用して source.id と target.id の間のマッピングを取得する

于 2013-07-19T14:54:53.743 に答える