Goran Bibic Ответов: 2

Вставить в с максимальным значением столбца +1 C#


Вставить в sql с объявленным значением максимальное числовое значение в столбце

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

В строке обновления работает нормально

string saveStaff = "declare @maxNo integer = 0 select @maxNo = isnull(max(redni_broj), 0) from dbo.drzave INSERT into dbo.drzave (redni_broj, Ime, Valuta, Poziv_na_broj, A2, A3, Num) VALUES ('@maxNo+1',@Ime,@Valuta,@Poziv_na_broj,@A2,@A3,@Num)";

Goran Bibic

строки saveStaff = "объявить @maxNo целое число = 0 выберите @maxNo = функция isnull(максимум(redni_broj), 0) От на[dbo].[drzave] ; Set @maxNo=@maxNo+1; вставить в [dbo].[drzave] (redni_broj) значения (@maxNo)";

2 Ответов

Рейтинг:
12

Goran Bibic

string saveStaff = "declare @maxNo integer = 0 select @maxNo = isnull(max(redni_broj), 0) from[dbo].[drzave] ; Set @maxNo=@maxNo+1; INSERT into [dbo].[drzave] (redni_broj) VALUES (@maxNo)";


Рейтинг:
1

Wendelius

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

Используя такое поле, база данных автоматически присваивает новое значение без какой-либо дополнительной логики на стороне клиента. Просто не забудьте определить столбец как первичный ключ, чтобы обеспечить уникальность.


0x01AA

Я предпочитаю последовательности. Еще немного работы, но зато гораздо больше свободы :-)

Wendelius

Да, я знаю. Лично я предпочитаю GUID по разным причинам, например, репликация, но в данном случае я думаю, что идентичность-это хорошая отправная точка.

Goran Bibic

Решение для меня?

Maciej Los

Это решение для тебя, Горан!

Wendelius

Если вы не используете репликацию и не имеете никаких других специальных требований, идентификация-это очень простое решение.

Maciej Los

5ed!

Wendelius

Спасибо тебе, Мацей!