这可能是一个显而易见的问题。 我有一个运行游标的sql sproc。
光标会将一定数量的记录插入表中。 问题是,假设游标运行1000个插入语句,这些记录标识必须相互跟随。如果其他人在光标运行时运行插入,它将占用光标运行的两个记录之间的记录。
任何人都可以给我一些提示,以确保所有光标插入互相跟随。
请注意我的光标可能会有50 000个插入。这意味着需要一段时间来完成所有插入操作。这样在执行插入时不得中断表。
答案 0 :(得分:0)
你可以试试这个:
INSERT INTO YourTable WITH (TABLOCK)
...
...
...
答案 1 :(得分:0)
BEGIN TRANSACTION t_Transaction
BEGIN TRY
INSERT INTO Table
SELECT *
FROM tablx
WITH (HOLDLOCK)
COMMIT t_Transaction
END TRY
BEGIN CATCH
ROLLBACK t_Transaction
END CATCH