使用ROWLOCK将OUTPUT插入表中

时间:2016-01-22 04:59:03

标签: sql-server

我有一个带有100K项目的临时表A,我需要将其插入到另一个表B中,所以我将它们按批次插入表B中,以便不阻止表格,使用下面的内容:

WHILE EXISTS (SELECT TOP 1 * FROM @A)
BEGIN
    DELETE TOP (1000) TMP 
    OUTPUT DELETED.FieldA, DELETED.FieldB
    INTO [dbo].[TableB] ([FieldA] ,[FieldB]) 
    FROM @A TMP
END

这工作正常但是我想知道在插入表B时是否有办法用ROWLOCK指定表提示?

喜欢这个

WHILE EXISTS (SELECT TOP 1 * FROM @A)
BEGIN
    DELETE TOP (1000) TMP 
    OUTPUT DELETED.FieldA, DELETED.FieldB
    INTO [dbo].[TableB] WITH (ROWLOCK) ([FieldA] ,[FieldB]) 
    FROM @A TMP
END

现在不会让我。

0 个答案:

没有答案