Freigeben über


NAV, пример SQL кода для последовательной нумерации товаров

Столкнулся недавно с необходимостью разбиения товаров на равные группы, так же требовался поиск данных в разрезе нечеткого набора товаров и т. д. …
Номера товаров причем носят длинные буквенно-цифровые и чисто цифровые названия.
Оперировать такими номерами не очень удобно, так же нет четкой и ясной “один за другим” последовательности.
Пришел к выводу, что для упрощения картины мира лучше просто занумеровать товары последовательно, используя для хранения числа не используемое поле “ Price Unit Conversion” и потом уже оперировать при накладывании фильтров обычными числами от 1 до 10000+.
Мне показалось, что наиболее быстро такую нумерацию можно сделать через SQL Query.

Привожу текст SQL кода:
-- Set Item ID

DECLARE @ID int
DECLARE @ItemNo varchar(20)

SET @ID = 0
SET @ItemNo = ''

DECLARE FIRST_cursor CURSOR FOR
SELECT [No_] FROM [CRONUS Россия ЗАО$Item] ORDER BY [No_]
OPEN FIRST_cursor

FETCH NEXT FROM FIRST_cursor
INTO @ItemNo

WHILE @@FETCH_STATUS = 0
BEGIN

SET @ID = @ID+1
UPDATE [CRONUS Россия ЗАО$Item] SET [Price Unit Conversion] = @ID WHERE [No_] = @ItemNo

FETCH NEXT FROM FIRST_cursor
INTO @ItemNo
END

CLOSE FIRST_cursor
DEALLOCATE FIRST_cursor