我需要增加計數器並更新我的數據庫表中的行,但有一些原因是它沒有遞增。 任何人都可以看到這個T-SQL有什麼問題嗎?T-SQL變量計數器不增加
DECLARE @id INT
DECLARE @name NVARCHAR(100)
DECLARE @getid CURSOR
declare @counter int
set @counter = 0
SET @getid = CURSOR FOR
SELECT ShipmentTrackingNumber,
Courier
FROM Shipping WHERE (ShipmentTrackingNumber = '')
OPEN @getid
FETCH NEXT
FROM @getid INTO @id, @name
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE SHipping SET ShipmentTrackingNumber = 'STN00000' + cast(@counter as VARCHAR(16))
set @counter = @counter + 1
FETCH NEXT
FROM @getid INTO @id, @name
END
CLOSE @getid
DEALLOCATE @getid
您可以使用row_number做爲單個更新語句而不是循環。更不用說你的更新語句當前正在循環遍歷每個迭代更新整個表。我懷疑這是你想要的。 –
永遠不要滿足rbar ... – Charleh