我需要编写一个过程,允许我选择 x 行,同时更新这些行,以便调用应用程序知道这些记录已锁定并正在使用。我的表中有一个名为“锁定”的列。下次调用该过程时,它将仅提取下 x 条未选中“锁定”列的记录。我已经阅读了一些有关 SQL Server 的 OUTPUT 方法的内容,但不确定这就是我想要做的。
正如您所建议的,您可以有效地使用 OUTPUT 子句:
现场演示:https://data.stackexchange.com/stackoverflow/query/8058/so3319842 https://data.stackexchange.com/stackoverflow/query/8058/so3319842
UPDATE #tbl
SET locked = 1
OUTPUT INSERTED.*
WHERE id IN (
SELECT TOP 1 id
FROM #tbl
WHERE locked = 0
ORDER BY id
)
另请参阅这篇文章:
http://www.sqlmag.com/article/tsql3/more-top-troubles-using-top-with-insert-update-and-delete.aspx http://www.sqlmag.com/article/tsql3/more-top-troubles-using-top-with-insert-update-and-delete.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)