1. SQL命令
在sql层面,常用的有三个函数
- IDENT_CURRENT()
select ident_current('table')
- SCOPE_IDENTITY()
select SCOPE_IDENTITY()
- @@IDENTITY
select @@identity
这里的查询命令是和插入命令一起执行的
三个命令在会话和作用域上有所区别,感兴趣的可以查看官方文档,这里不在赘述
示例
针对基本表test的数据插入,向test插入一条新数据(我这里的id自增)
insert into test(test_data)
values('测试')
SELECT IDENT_CURRENT('test')
执行。数据插入成功,返回了新插入数据的id

值得注意的是,返回的id必须是基本表的主键,否则返回的值为空
2. C#程序
写一个方法,传入参数为sql语句,返回的值就是新插入数据的id值
/// <summary>
/// 这个针对 需要在插入数据时返回数据的id值
/// </summary>
/// <param name="sql">sql语句</param>
/// <returns>新插入数据的id值</returns>
public static int ExecuteScalar(string sql)
{
int result = -1;
string SqlConnectionString = "server=localhost;database=AAA;uid=sa;pwd=123456";
try
{
using (SqlConnection con = new SqlConnection(SqlConnectionString))
{
con.Open();
SqlCommand com = new SqlCommand(sql, con);
com.CommandType = CommandType.Text;
object value = com.ExecuteScalar();
result = Convert.ToInt32(value);
}
}
catch (Exception ex)
{
Debug.Print(ex.ToString());
}
return result;
}
需要时调用就可以了
string sql = "insert into test(test_data) values('测试') SELECT IDENT_CURRENT('test')";
int id = ExecuteScalar(sql);

616

被折叠的 条评论
为什么被折叠?



