赞
踩
在sql层面,常用的有三个函数
select ident_current('table')
select SCOPE_IDENTITY()
select @@identity
这里的查询命令是和插入命令一起执行的
三个命令在会话和作用域上有所区别,感兴趣的可以查看官方文档,这里不在赘述
示例
针对基本表test的数据插入,向test插入一条新数据(我这里的id自增)
insert into test(test_data)
values('测试')
SELECT IDENT_CURRENT('test')
执行。数据插入成功,返回了新插入数据的id
值得注意的是,返回的id必须是基本表的主键,否则返回的值为空
写一个方法,传入参数为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);
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。