Мне нужно увеличить счетчик и обновить строки в моей таблице db, но по какой-то причине он не увеличивается. Может ли кто-нибудь увидеть, что не так с этим 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