我有以下代码:
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();