2011-01-26 13 views
0

私は一括挿入として5000レコードが挿入されることを期待しているテーブルを持っていますが、私は各ステートメントのテーブルから最大IDを選択する必要があります。最大IDを1回インクリメントしてレコードをすばやく挿入できますが、他のユーザーが同じストアドを使用してウィックを挿入すると競合が発生する可能性があります Spを使用して挿入を完了するまでは、または通常の挿入スクリプトですか?挿入中にテーブルをロックする

+4

「IDENTITY」だけではないのはなぜですか? – Quassnoi

+0

もう少し句読点が良いでしょう。 –

答えて

1

Quassnoi氏によると、IDENTITYを使用し、複雑で複雑なプロセスはほとんどありません。

あなたが説明したプロセスを使用することにコミットしている場合、それは取るべきすべてがある:

INSERT INTO MyTable WITH (TABLOCK) 
(field 1, field2, field3...) 
VALUES 
(value 1, value 2, value 3...) 

TABLOCKヒントが挿入/更新のための排他表ロックを置きます(あなたもあるTABLOCKXを使用することができます明示的排他ロックですが、SELECT以外は必要ありません)。

TABLOCKTABLOCKTABLOCKTABLOCKヒントでは、トレースフラグが正しく設定されている場合は最小限のログに記録されるようになりますが、これは通常は大幅に高速です。

関連する問題