我有这个代码:
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();
}
Run Code Online (Sandbox Code Playgroud)
当我插入这个表时,我有一个auto_increment int主键列调用GamesProfileId,如何在此之后获取最后一个插入的列,以便我可以使用该id插入另一个表?
在SQL Server数据库中,主键和标识列之间有什么区别?列可以是主键而不是缩进.但是,如果不是主键,则列不能是标识.
除了差异之外,PK和Identity列提供的只是PK列没有?
编辑:哎呀.如下所述并且现在由我验证,列可以是身份而不是PK.当我测试这个时,我的列类型是一个字符串,我无法将其设置为标识.说得通.
对不起,如果这个问题是愚蠢但我似乎无法找到答案.刚开始使用SQL.我正在阅读获取最后插入的行ID(带有SQL语句)的答案,似乎SCOPE_IDENTITY是"最新插入的值".此操作是否在插入后立即锁定,因为如果没有,则另一个新插入的行可能会成为插入后立即插入的内容我打算获取ID.
谢谢您的帮助!
我想要检索最近添加的客户.我没有任何列存储添加行的日期/时间,而我的主键是Cust_ID,它不是IDENTITY列,也不一定按升序输入.
这是我的表,Customer并且想象已按此顺序添加了三行:
Cust_ID Cust_Name Cust_Age
-------------------------------------
2 C 23
6 A 25
3 B 22
Run Code Online (Sandbox Code Playgroud)
在上面的例子中我想得到最后一条记录(B).SQL Server中是否有任何预定义函数将返回表的最后一行(不依赖于升序)?