2
例如,下面的代码(箭头指向两部分)可以使用第一个结果而不是再次查询数据库吗? - 如果有不匹配,其中TABLE_ENTRIES.retrieved
是空的任何行,那么查询如何在SQL SERVER PROCEDURE中重用选择结果
WITH sample AS (
SELECT TOP(@count)
te.*
FROM TABLE_ENTRIES te
WHERE te.retrieved IS NULL)
UPDATE sample
SET retrieved = CURRENT_TIMESTAMP
有没有必要检查@@ ROWCOUNT的/ etc:
CREATE PROCEDURE GetInforEntries (@Count as int) AS
BEGIN
SELECT TOP (@Count) *
from Table_Entries
where Retrived IS NULL <----
IF @@ROWCOUNT > 0
BEGIN
UPDATE Table_Entries
SET Retrived = CURRENT_TIMESTAMP
WHERE id IN (SELECT TOP (@Count) id <----
from Table_Entries
where Retrived IS NULL)
END
END