読み取り/更新のために、テーブル内の 1 つの行をロックする必要があります。以下のコードを書きましたが、時間がかかりすぎます。他の方法を提案してください。
BEGIN TRANSACTION
DECLARE @v_id_counter NUMERIC;
DECLARE @v_new_rows NUMERIC;
SET @v_new_rows = 10;
SELECT @v_id_counter = id
FROM tbl_keys [UPDLOCK ROWLOCK] with (Xlock)
WHERE name='tbl_docs'
update tbl_keys set id = (@v_id_counter + @v_new_rows ) where name='tbl_docs'
COMMIT;
tbl_keys
: 多くのテーブルの主キーとそのシーケンスの代替を格納します
tbl_docs
: N 行を挿入する必要があるテーブルです