将一个表的最大值从一个表插入到另一个表

本文关键字:一个 另一个 插入 最大值 | 更新日期: 2023-09-27 18:36:47

我正在使用新的注册用户更新数据库。 然后,他们将获得一个用户 ID。我想在更新另一个表中的位置时使用该数字。但我不知道用户 ID 会是什么。(它是自动增量数)所以我想我会更新第一个表。然后选择最大用户 ID 并将该 id 作为位置用户 ID 插入到另一个表中,但我无法让它工作。

这是代码。

String StrSQL = "INSERT INTO Fastelejer (Fornavn,Efternavn) VALUES ('" + fornavn + "','" +      
Efternavn +  "')";
OleDbCommand InsertCommand = new OleDbCommand(StrSQL, conn);
InsertCommand.ExecuteNonQuery(); 
StrSQL = "INSERT INTO Bådpladser (Fastelejerid) SELECT MAX (Fastelejerid) FROM    
StrSQL = "INSERT INTO Bådpladser (Fastelejerid) SELECT MAX (Fastelejerid)FROM
Fastelejer WHERE Pladsnummer = " + Pladsnummer;

普拉兹努默表示其位置的输入。因此,注册应将用户 ID 放入所选位置。

将一个表的最大值从一个表插入到另一个表

在MS Access中,"autoincrement"通常称为"identity"。 您可以使用特殊的@@IDENTITY变量来检索上次插入的身份列的 ID。 知道新 ID 后,可以将其作为参数添加到第二个插入中,例如:

command.CommandText = "INSERT Table1 (...) values (...); SELECT @@IDENTITY";
var identity = (int) command.ExecuteScalar();
command.CommandText = "INSERT Table2 (user_id, ...) VALUES (@user_id, ...)";
command.Parameters.AddWithValue("@user_id", identity);
command.ExecuteNonQuery();