Member 13420068 Ответов: 1

Извлечение номера автоматического инкримента из SQL server


как отобразить число автоматического приращения с sql server на vb.net windows form to text box/lsbel

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

Dim Nextid As String
       Dim connection As New SqlConnection("server= madhuresh-pc; database= madhu; integrated security= true")
       connection.Open()

       Dim cmd As New SqlCommand("SELECT MAX(caseno+1) As 'NextId' FROM case1", connection)
       Nextid = cmd.ExecuteScalar()
       txtstation.Text = Nextid
       connection.Close()
   End Sub

ZurdoDev

Этот код выглядит нормально. В чем проблема?

1 Ответов

Рейтинг:
2

OriginalGriff

НЕТ.
Никогда не делай этого.

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

Вам не нужно знать, какой идентификатор используется до тех пор, пока данные не будут вставлены - и это можно получить с помощью SCOPE_IDENTITY (Transact-SQL) | Microsoft Docs[^] после того, как вы вставили строку.
Если вам нужен идентификатор перед вставкой, то не используйте поле IDENTITY - используйте GUID и предоставьте его из своего презентационного программного обеспечения, а не позволяйте SQL следить за ним.