我有这个代码:
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 插入另一个表?
GamesProfileId
对于 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();