关于查询自己刚刚插入的那一条数据的方法
2011-01-13 15:24
567 查看
1、先在一查询分析器中执行以下语句:
declare @nameo varchar(50);
Begin
Set NOCOUNT ON;
Set XACT_ABORT ON;
Begin Tran
Insert into users ([id],[name],create_date)values('1','1',getdate())
WAITFOR DELAY '00:00:20';
select @nameo=[name] from users where [id]='1'
print @nameo
Commit Tran
End
2、执行完1后,在另一查询分析器中执行如下语句(要在执行完1后20秒内执行完2)
Insert into users ([id],[name],create_date)values('1','2',getdate())
结果1中输出“2”
说明:取得的数据不正确,试想一下,在我插入数据之后查询之前,另一个用户也插入了一条数据,那么我取得的数据就不是我刚刚插入的那一条。
那么,如何取得自己刚刚插入那一条记录的ID呢,其实,这个ID是自增的,所以
将“ select @nameo=[name] from users where [id]='1' ”换成“ select @nameo=@@IDENTITY from users ”
问题解决!
declare @nameo varchar(50);
Begin
Set NOCOUNT ON;
Set XACT_ABORT ON;
Begin Tran
Insert into users ([id],[name],create_date)values('1','1',getdate())
WAITFOR DELAY '00:00:20';
select @nameo=[name] from users where [id]='1'
print @nameo
Commit Tran
End
2、执行完1后,在另一查询分析器中执行如下语句(要在执行完1后20秒内执行完2)
Insert into users ([id],[name],create_date)values('1','2',getdate())
结果1中输出“2”
说明:取得的数据不正确,试想一下,在我插入数据之后查询之前,另一个用户也插入了一条数据,那么我取得的数据就不是我刚刚插入的那一条。
那么,如何取得自己刚刚插入那一条记录的ID呢,其实,这个ID是自增的,所以
将“ select @nameo=[name] from users where [id]='1' ”换成“ select @nameo=@@IDENTITY from users ”
问题解决!
相关文章推荐
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于大数据量模糊查询的方法
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- C API向MySQL插入批量数据的快速方法——关于mysql_autocommit
- sql语句如何在insert一条数据后直接返回刚刚插入的数据的ID
- ThinkPHP find方法 查询一条数据记录
- MySQL数据库 查询表数据出现中文乱码 及 插入中文报错Incorrect string value问题解决方法
- 黑马程序员-关于插入一条数据,马上得到该数据ID
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于Hibernate映射视图后数据查询的方法
- C API向MySQL插入批量数据的快速方法——关于mysql_autocommit
- 现在有这样一个问题 我把上W条数据插入表内,但是发现还有一条数据没进入表里.我想查出来是哪个数据没进去. 能用查询语句查出来吗?
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于mysql处理百万级以上的数据时如何提高其查询速度的方法
- 关于sql查询中去掉重复数据的方法
- 关于Oracle的exp和dblink转移数据效率比较以及DBLINK查询大字段方法
- 用一条insert 插入多行数据的方法