我有一个存储过程(下面),它将读取要处理的下一行,将行状态设置为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
答案 0 :(得分:0)
那段代码很好。 OUTPUT对此有好处。