Sql 如何在单个查询中选择一个变量并使用所选变量更新另一个变量?
我想从表中选择前1行,并在同一查询中更新该行的一列。这就是我使用的select查询Sql 如何在单个查询中选择一个变量并使用所选变量更新另一个变量?,sql,sql-server,Sql,Sql Server,我想从表中选择前1行,并在同一查询中更新该行的一列。这就是我使用的select查询 SELECT TOP 1 PageId, PageUrl, CrawlDepth FROM tblPages WHERE MainSiteId = 1 AND UnExpectedCrawlError = 0 AND CrawlStatus = 0 AND CrawlingStarted = 0 现在,该查询
SELECT TOP 1 PageId,
PageUrl,
CrawlDepth
FROM tblPages
WHERE MainSiteId = 1
AND UnExpectedCrawlError = 0
AND CrawlStatus = 0
AND CrawlingStarted = 0
现在,该查询返回1行。我想要的是更新它来更新此行的CrawlingStarted
列,并将其设置为1。因此,我将选择一行,同时更新其1列
我该怎么做呢?您可以使用update语句和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
请参见我要更新所选行。有了你的回答,我该怎么做?我实际上是在问。。。对不起,我忽略了那个要求。我为这个问题添加了一个解决方案。这个插入的术语从哪里来,谢谢你的回答。投票表决您将在此处找到有关OUTPUT子句的所有信息:“inserted”是一个表示新值的伪表。感谢您的回答,但您的查询出现错误:Msg 156,级别15,状态1,第2行关键字“SET”附近的语法不正确。