事务处理自增量的问题。

laznhr 2009-05-04 02:20:06
有两个表,需要做一个插入操作,其中有一个ID字段。A表的ID是自增,B表的ID是可重复并和A表的ID做一对多的关系。
现在问题出现了,我需要做一个事务操作,必须要两个表都插入成功了才提交事务,但由于A的ID是自增,所以在提交事务前我是无法知道ID号,也就无法把B表的ID号和A表的ID号绑定了。
...全文
74 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
laznhr 2009-06-12
  • 打赏
  • 举报
回复
楼上的也太搞笑了吧。一段程序放在网络上,同一时间注册的可能性不是不存在,你不可能因为概率低就说是不可能发生。这里有一个问题廷申性,可以廷申到其他地方,这足以把发生的概率提高。
如果你是觉得是没这种可能性,你可以指出来。而且我认为你连@@identity,SCOPE_IDENTITY()两个的区别是什么也不知。如果是无知,那就别在这里说一大堆自以为是的废话了。
fbliklz 2009-06-02
  • 打赏
  • 举报
回复
楼上的垃圾问题不用理会
服不是很容易写啊!不过今天我不得不写!这样的大胆想法你都想到了!奇迹!厉害!很厉害!服了!
你想的问题是不会发生的!
laznhr 2009-05-12
  • 打赏
  • 举报
回复
好彩还没结贴,2,3楼说的都很有用,我发现@@identity,SCOPE_IDENTITY()都有很大的区别,而且似呼@@identity出错的机率更大。
啊布说的问题我不太了解是什么,能不能解说 一下。 现在新的问题又来了,万一我同时有两个用户要注册X和Y,X的ID是4,Y的ID是5,我的更新数据库是在代码里写的,就是先写A表,然后查出A的ID值,再插入B表,如果X写A表慢了一点,Y写A表快一点。那会不会出现X写B表时的ID会变成5呢?
如果这情况出现了,那有什么办法可以去解决。
desegou 2009-05-06
  • 打赏
  • 举报
回复
用SCOPE_IDENTITY()似乎更好点
js1722 2009-05-06
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 nszhang 的回复:]
A表中插入数据是可以获得自增的ID的,在事务中Insert完以后select @ID=@@identity,就可以获得自增的ID了
[/Quote]

可以这样做,不过使用的时候要注意,比如在触发其中自增ID失败了,那样@@identity获取的数据就不准确了
nszhang 2009-05-04
  • 打赏
  • 举报
回复
A表中插入数据是可以获得自增的ID的,在事务中Insert完以后select @ID=@@identity,就可以获得自增的ID了


17,740

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧