Я пытаюсь выполнить запрос для обновления текущей базы данных, но я не могу понять, как это сделать. Я пытаюсь с курсорами, но я не могу найти способ изолировать каждую строку и не устанавливать все строки отдельного столбца в одно и то же значение.Как перебирать столбец int для каждого отдельного значения в SQL?
Вот что я имею в моей базе данных:
RecoNumber Item
ABIBAQC-01 1
ABIBAQC-01 1
ABIBAQC-01 1
ABIBAQC-02 1
ABIBAQC-03 1
ABIBAQC-03 1
И я хотел бы, чтобы он стал:
RecoNumber Item
ABIBAQC-01 1
ABIBAQC-01 2
ABIBAQC-01 3
ABIBAQC-02 1
ABIBAQC-03 1
ABIBAQC-03 2
Как я уже сказал, я попытался с помощью курсора, но мне не хватает что-то, чтобы заставить его работать правильно.
DECLARE @NUMBER INT
DECLARE @RECO NVARCHAR(10)
DECLARE @RECO_OLD NVARCHAR(10)
DECLARE db_cursor CURSOR FOR
SELECT DISTINCT RecoNumber
FROM Workbook2014_Test.dbo.Reco
OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @RECO
SET @NUMBER = 1
SET @RECO_OLD = @RECO
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE Workbook2014_Test.dbo.Reco
SET Item = @NUMBER
WHERE RecoNumber = @RECO
FETCH NEXT FROM db_cursor INTO @RECO
IF(@RECO != @RECO_OLD)
SET @NUMBER = 1
ELSE
SET @NUMBER = @NUMBER + 1
END
CLOSE db_cursor
DEALLOCATE db_cursor
Заранее благодарим за любые советы.