猛 猛禽 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-26 #22 这跟ADO没关,SQLServer就是这样设计的,@@Identity是全局变量, 返回的是最近一个自增类型字段的值. 当你向A中增加时@@Identity是127,但这时触发器又执行了,B又增加一条记录, 此时@@Identity就变成B的自增字段值456了.所以你得到的一定是456. 除非你用其它方法(不用@@Identity)或设法先增加B再增加A
这跟ADO没关,SQLServer就是这样设计的,@@Identity是全局变量, 返回的是最近一个自增类型字段的值. 当你向A中增加时@@Identity是127,但这时触发器又执行了,B又增加一条记录, 此时@@Identity就变成B的自增字段值456了.所以你得到的一定是456. 除非你用其它方法(不用@@Identity)或设法先增加B再增加A
B bjf2001 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-26 #23 这样还不好作吗,在b表中的id值不要让他自增就好了,直接去a表的id值就ok了,哈哈
薛 薛獅 Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-27 #25 我觉得还是用存储过程处理好一些,语句示例如下: begin tran Insert A Select @Return=@@Identity insert B comm 前台使用A表时重新刷新。 不知你明白了吗?
我觉得还是用存储过程处理好一些,语句示例如下: begin tran Insert A Select @Return=@@Identity insert B comm 前台使用A表时重新刷新。 不知你明白了吗?
R rongyujohny Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-27 #26 To 猛禽 我必须新增A后才能触发,所以怎么能先新增B后新增A,况且我在触发器里还要用新增 A表的ID。 To bjf2001 这个方法是返回A表的正确ID值,那B表唯一值字段去掉了,该如何?这样给自己定义的 递增函数带来了难度,因为我在A表新增触发器时候是新增B表的几条记录。谢谢! To 薛狮 用存储过程实现自然可以,不过思路不同!存储过程实现思路我明白!如果还找不到好 的解决方法,只能考虑用存储过程。谢谢!
To 猛禽 我必须新增A后才能触发,所以怎么能先新增B后新增A,况且我在触发器里还要用新增 A表的ID。 To bjf2001 这个方法是返回A表的正确ID值,那B表唯一值字段去掉了,该如何?这样给自己定义的 递增函数带来了难度,因为我在A表新增触发器时候是新增B表的几条记录。谢谢! To 薛狮 用存储过程实现自然可以,不过思路不同!存储过程实现思路我明白!如果还找不到好 的解决方法,只能考虑用存储过程。谢谢!
A Adnil Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #27 select max(id) from A 通过这样来取新增的id吧
R rongyujohny Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #28 To Adnil 不知你的意思是不是通过“select Max(ID) FROM B”这样取B表新增记录的ID值。 这样取ID,那么在A表新增触发器里对B表新增的记录的ID会都一样
Y yljailxx Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #29 没有这么复杂吧!,小弟用过类似的功能,很简单就实现了,在你的B表中增加一个字段, 存储A表中的唯一ID值,另外可以在给B表建立一个主键,这样简单,而且A,B表关联也没 问题呀!
R rongyujohny Unregistered / Unconfirmed GUEST, unregistred user! 2002-11-28 #30 To yljailxx 如果取消一个表的ID字段,当然可以,如果要这个方法那就不用拿出来问了。
有 有毛病 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-04 #32 还要考虑到多用户的情况,假如你插入数据后刚好其它用户也插入了数据呢?
R rongyujohny Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-05 #33 同一个触发器触发总有个先后顺序的,所以多用户在触发器应该是没有冲突的!
L linx Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-26 #35 象ficq一样,注册后,能把号码(identity)返回客户端 不知道怎么实现,多用户进行数据库操作时候。
S ssss__0002 Unregistered / Unconfirmed GUEST, unregistred user! 2002-12-30 #36 http://www.delphibbs.com/delphibbs/dispq.asp?lid=481730
L ljy_17 Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-08 #37 我昨天也遇到相同的問題,我試了一個下午還是沒有結果…… 強列關注中……………
Z zhjwjan Unregistered / Unconfirmed GUEST, unregistred user! 2003-01-08 #38 试试before触发器,如果sqlserver在befoer触发器里还没有为表A计算新的id,那么就可以了。 如果不行那就只有存储过程了。
S szzhb Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-08 #39 在sqlserver中没有before触发器的。只有after和instead of 两种
J junrui2726 Unregistered / Unconfirmed GUEST, unregistred user! 2004-04-08 #40 你的表id字段是自动增长的吗??我想应该是你数据库设计出问题