小编典典

如何获取最后插入的 id?

all

我有这个代码:

string insertSql = 
    "INSERT INTO aspnet_GameProfiles(UserId,GameId) VALUES(@UserId, @GameId)";

using (SqlConnection myConnection = new SqlConnection(myConnectionString))
{
   myConnection.Open();

   SqlCommand myCommand = new SqlCommand(insertSql, myConnection);

   myCommand.Parameters.AddWithValue("@UserId", newUserId);
   myCommand.Parameters.AddWithValue("@GameId", newGameId);

   myCommand.ExecuteNonQuery();

   myConnection.Close();
}

当我插入该表时,我有一个名为的 auto_increment int 主键列GamesProfileId,我怎样才能获得最后插入的一个,以便我可以使用该
id 插入另一个表?


阅读 153

收藏
2022-08-01

共1个答案

小编典典

对于 SQL Server 2005+,如果没有插入触发器,则将插入语句(全部为一行,此处为清楚起见拆分)更改为此

INSERT INTO aspnet_GameProfiles(UserId,GameId)
OUTPUT INSERTED.ID
VALUES(@UserId, @GameId)

对于 SQL Server 2000,或者如果有插入触发器:

INSERT INTO aspnet_GameProfiles(UserId,GameId) 
VALUES(@UserId, @GameId);
SELECT SCOPE_IDENTITY()

接着

 Int32 newId = (Int32) myCommand.ExecuteScalar();
2022-08-01