create table TaUsers(id int identity(1,1),name varchar(20),age varchar(3),sex char(1))
go
insert into TaUsers
select '张三','20','0'
union all select '李四','23','1'
union all select '王二','25','1'
union all select '麻子','25','0'
union all select '李四','23','1'
go
select * from tausers;
go
insert into TaUsers values('李四','23','1');
select @@identity
select * from tausers;
go
go
drop table tausers;
go
--比如: insert into TaUsers values('李四','23','1');
--我要怎么样才能检索出这条刚插入数据的id呢?麻烦大虾帮个忙,先谢了. select id from TaUsers where name='李四' and age='23' and sex='1'
--这样做怎么行呢?支个招...
/*结果
(5 行受影响)
id name age sex
----------- -------------------- ---- ----
1 张三 20 0
2 李四 23 1
3 王二 25 1
4 麻子 25 0
5 李四 23 1(5 行受影响)
(1 行受影响)---------------------------------------
6(1 行受影响)id name age sex
----------- -------------------- ---- ----
1 张三 20 0
2 李四 23 1
3 王二 25 1
4 麻子 25 0
5 李四 23 1
6 李四 23 1(6 行受影响)*/
go
insert into TaUsers
select '张三','20','0'
union all select '李四','23','1'
union all select '王二','25','1'
union all select '麻子','25','0'
union all select '李四','23','1'
go
select * from tausers;
go
insert into TaUsers values('李四','23','1');
select @@identity
select * from tausers;
go
go
drop table tausers;
go
--比如: insert into TaUsers values('李四','23','1');
--我要怎么样才能检索出这条刚插入数据的id呢?麻烦大虾帮个忙,先谢了. select id from TaUsers where name='李四' and age='23' and sex='1'
--这样做怎么行呢?支个招...
/*结果
(5 行受影响)
id name age sex
----------- -------------------- ---- ----
1 张三 20 0
2 李四 23 1
3 王二 25 1
4 麻子 25 0
5 李四 23 1(5 行受影响)
(1 行受影响)---------------------------------------
6(1 行受影响)id name age sex
----------- -------------------- ---- ----
1 张三 20 0
2 李四 23 1
3 王二 25 1
4 麻子 25 0
5 李四 23 1
6 李四 23 1(6 行受影响)*/
解决方案 »
- 服务器开启系统防火墙,添加1433例外,内网无法做数据交流,外网却可以。
- sql查询
- 求一sql语句。统计其中一个表的数据。然后和另外一个表中的数据比较
- SQL对时间字段的检索比较时问题
- 为什么文本框中的日期是2005-7-25,存入数据库后变成2005-07-25 00:00:00.000??取出来就是这个2005-07-25 00:00:00.000值?
- 请问高手们这行哪里错了啊????
- @@@@@@@@@@@@@@@@@@游标试验~~出现错误
- 高手请进:-------这样的SQL追加语句怎么写?----------高分求解(再加1000)
- 关于一个疑惑问题,请高手帮忙
- 求一个mysql的sql语句。
- 如何批量更新数据库字段的一部分?
- sql server 2005能不能复制同步到sql server 2000服务器?
insert into TaUsers
select '张三','20','0' union all
select '李四','23','1' union all
select '王二','25','1' union all
select '麻子','25','0' union all
select '李四','23','1' --比如:
insert into TaUsers values('李四','23','1');
SELECT SCOPE_IDENTITY()drop table TaUsers
/*
----------------------------------------
6(1 row(s) affected)
*/
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值 SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。 例如,有两个表 T1 和 T2,在 T1 上定义了一个 INSERT 触发器。当将某行插入 T1 时,触发器被激发,并在 T2 中插入一行。此例说明了两个作用域:一个是在 T1 上的插入,另一个是作为触发器的结果在 T2 上的插入。 假设 T1 和 T2 都有 IDENTITY 列,@@IDENTITY 和 SCOPE_IDENTITY 将在 T1 上的 INSERT 语句的最后返回不同的值。 @@IDENTITY 返回插入到当前会话中任何作用域内的最后一个 IDENTITY 列值,该值是插入 T2 中的值。 SCOPE_IDENTITY() 返回插入 T1 中的 IDENTITY 值,该值是发生在相同作用域中的最后一个 INSERT。如果在作用域中发生插入语句到标识列之前唤醒调用 SCOPE_IDENTITY() 函数,则该函数将返回 NULL 值。 而IDENT_CURRENT( 'T1 ') 和 IDENT_CURRENT( 'T2 ') 返回的值分别是这两个表最后自增的值。如果语句和事务失败,它们会更改表的当前标识,从而使标识列中的值出现不连贯现象。即使未提交试图向表中插入值的事务,也永远无法回滚标识值。例如,如果因 IGNORE_DUP_KEY 冲突而导致 INSERT 语句失败,表的当前标识值仍然会增加。