2012-02-05 15 views
0

テーブルからトップ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

[キューとしてテーブルを使用]を参照(http://rusanu.com/2010/03/26/using-tables-as-queues/) –

答えて

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 
+0

Iが選択された行を更新します。あなたの答えはどうすればいいですか?私は実際に尋ねている... – MonsterMMORPG

+0

申し訳ありませんが、私はその要件を見落としました。私はそのための解決策を追加しました。 – usr

+0

この挿入された用語はどこに来て、答えに感謝しますか? vote up – MonsterMMORPG

関連する問題