Goran Bibic Ответов: 2

Счетчик в SQL из C#


Я попробую это сделать


У меня есть reslult
1
1
1
..

Должны иметь
1
2
3
..

Что я уже пробовал:

<pre>declare @maxNo integer = 0 select @maxNo = isnull(max(redni_broj), 0) from [dbo].[prenosnica_roba] WHERE id_fakture=3;Set @maxNo=@maxNo+1;
INSERT into dbo.prenosnica_roba (redni_broj)
     SELECT  @maxNo
    FROM dbo.mp_racun_roba 

2 Ответов

Рейтинг:
7

OriginalGriff

Вы устанавливаете @MaxNo на текущее максимальное значение из вашей таблицы, но не меняете это значение. Поэтому в первый раз, когда он находит значение, он будет дублировать его до бесконечности. Вероятно, вы хотите увеличить @MaxNo перед вставкой - но это не очень хорошая идея.
Почти наверняка то, что вы на самом деле хотите сделать, - это использовать вместо этого значение идентификатора, и чтобы БД не разбиралась в нем за вас: IDENTITY (Property) (Transact-SQL) - SQL Server | Microsoft Docs[^]


Рейтинг:
0

Kornfeld Eliyahu Peter

Вероятно, вы можете использовать для этого одну из функций ранжирования SQL...
Функции ранжирования (Transact-SQL) - SQL Server | Microsoft Docs[^]