如何在单个查询中选择变量并使用该选定变量更新另一个变量?

时间:2012-02-05 22:22:49

标签: sql sql-server

我想从表中选择前1行,并在同一查询中更新该选定行的列。所以这是我正在使用的选择查询

SELECT TOP 1 PageId,
             PageUrl,
             CrawlDepth
FROM   tblPages
WHERE  MainSiteId = 1
       AND UnExpectedCrawlError = 0
       AND CrawlStatus = 0
       AND CrawlingStarted = 0  

现在此查询返回1行。我想要的是更新它以更新此行的CrawlingStarted列并将其设置为1.因此,我将选择一行并同时更新其1列。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

您可以使用更新语句并使用OUTPUT子句。

UPDATE TOP (1) t
SET CrawlingStarted = 1
OUTPUT inserted.PageId, inserted.PageUrl, inserted.CrawlDepth
FROM   tblPages t
WHERE  MainSiteId = 1
       AND UnExpectedCrawlError = 0
       AND CrawlStatus = 0
       AND CrawlingStarted = 0