Я использую VB.NET с базой данных доступа, я вставляю значения, но затем мне нужно получить последний вставленный идентификатор (автоматический номер) и вставить его в связанную таблицу.vb.net sql последний раз вставленный ID
Я пробовал @@ IDENTITY и MAX (столбец), но @@ IDENTITY возвращает ноль, а MAX не очень надежный (иногда медленно вставлять данные, поэтому получите идентификатор перед вставленным).
Dim insertSql = datalayer.getDataTable((String.Format("INSERT INTO users (username) VALUES ({0})", username)))
Dim newID = datalayer.getDataTable((String.Format("SELECT @@IDENTITY FROM users")))
Dim con As OleDbConnection = getConnection()
con.Open()
Dim sqlCommand As OleDbCommand = New OleDbCommand(String.Format(insertSql), con)
sqlCommand.ExecuteNonQuery()
Это делается в двух функциях, поэтому приведенный выше код может показаться запутанным, но тот только что из этих двух функций. Выполняются два оператора, но я только что показал, что один из них выполняется в качестве примера.
Есть ли альтернатива @@ IDENTITY и MAX, так как я, похоже, не вижу, как это происходит с @@ IDENTITY?
Спасибо за любой совет :).
Смотрите мое последнее изменение, о доступе не поддерживает несколько операторов в одной команде. Можете ли вы подтвердить, что это действительно работает, или вы пошли на другой подход? –