我需要增加计数器并更新我的数据库表中的行,但有一些原因是它没有递增。 任何人都可以看到这个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