存储过程以获取下一条记录并更新行的状态

时间:2014-12-19 04:37:37

标签: sql-server stored-procedures transactions

我有一个存储过程(下面),它将读取要处理的下一行,将行状态设置为1(正在处理中),并返回标识该行的GUID。这个程序是否实现了目标?还有更好的方法吗?

CREATE PROCEDURE [PSR].[uspGetNextAssessmentEvent]
AS

SET NOCOUNT ON;
BEGIN TRAN T1;

    WITH T AS
    (
    SELECT TOP (1) TransactionGuid,ItemStatus
    FROM [PSR].[PersonAssessmentEventStore]
        WHERE ItemStatus=0
        ORDER BY CreateDttm
    )
    UPDATE T
    SET ItemStatus = 1
    OUTPUT INSERTED.TransactionGuid

COMMIT TRAN T1;

GO

1 个答案:

答案 0 :(得分:0)

那段代码很好。 OUTPUT对此有好处。