我爲什麼看到兩個語句之間的區別有點困惑。我試圖簡單地遞增1的INT列,所以設置值1,2,3,4,等:包含多個集合的更新語句
QUERY#1產生所期望的結果:
DECLARE @a int
SET @a = 0
UPDATE #jc_TEMP
SET num = @a, @[email protected]+1
QUERY#2將所有行設置爲0:
DECLARE @a int
SET @a = 0
UPDATE #jc_TEMP
SET num = @a
SET @[email protected]+1
顯然我在這裏錯過了一些東西,但對肉眼來說它們看起來是相同的。第二個查詢中的局部變量回滾是否存在?
任何特定的數據庫? – GolezTrol
你的第二個查詢沒有'WHERE'子句,所以它會將每條記錄設置爲0.第一個查詢在更新時也會增加'@ a'變量。 – Siyual
@Siyual - 有沒有其他方法可以在不使用遊標的情況下重寫第一個查詢?另外,爲什麼缺少where子句對查詢#1沒有問題?謝謝! – tchock