请问:如何使用sql server变量@@identity?
表一使用了identity字段ID
当插入一条纪录后,同时向表二、表三加入纪录,
insert 表一 (aaa) values(:aaa) //如果插入后ID为10
insert 表二 (ID,bbb) values(@@indentity,:bbb) //@@indentity=10
insert 表三 (ID,ccc) values(@@indentity,:ccc) //@@indentity为空,何解?
问题点数:20、回复次数:11Top
1 楼delphibook(刀客)回复于 2001-06-01 20:33:00 得分 0
没人知??Top
2 楼delphibook(刀客)回复于 2001-06-01 21:57:00 得分 0
??????????????Top
3 楼tidycc(tidy)回复于 2001-06-01 22:15:00 得分 0
太简单啦。因为有INDITIFY类型的字段,
不可以显示插入数据。
若你第一句插入成功,那么.
第二句话是错的,数据插不进出。插入失败 @@INDITYIFY就为空啦.
于是第三句是为空,当然这句也错啦,插不进数据
不信插后用SELECT 查询一下表,
数据有没有插入。
Top
4 楼delphibook(刀客)回复于 2001-06-03 20:29:00 得分 0
to tidycc(tidy):
插入都成功的,只是第三句的ID为空!Top
5 楼delphibook(刀客)回复于 2001-06-04 10:13:00 得分 0
??????????????Top
6 楼delphibook(刀客)回复于 2001-06-04 11:04:00 得分 0
upTop
7 楼tidycc(tidy)回复于 2001-06-04 20:24:00 得分 10
嘻~~~,这样啊,那你就用啦
SET IDENTITY_INSERT 禁止IDENTITY,否则你那能插入,
也因为你禁止,所以@@identity 就不能得到啦,
要改成。
insert 表一 (aaa) values(:aaa) //如果插入后ID为10
insert 表二 (bbb) values(:bbb) //再 SELECT @@indentity
insert 表三 (ccc) values(:ccc) //再 SELECT @@indentity
若你能显示插入,作为系统变量@@IDENTITY当然得不到系统值啦。
Top
8 楼liuj0771()回复于 2001-06-04 22:46:00 得分 10
begin tran
declare @var1 int
insert table1
set @var1 = @@identity
insert table2 values(@var1)
insert table3 values(@var1)
commit tranTop
9 楼bessxq(bb)回复于 2001-06-05 00:36:00 得分 0
o,i seeTop
10 楼bessxq(bb)回复于 2001-06-05 00:39:00 得分 0
11 楼disney(编程乐园)回复于 2001-06-05 01:03:00 得分 0
来晚了!!Top




