首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

关于在程序上处理SQLSERVER的事务有关问题

2012-05-16 
关于在程序上处理SQLSERVER的事务问题表A(aID int主键自增aName varchar(10))表B(bID int 主键自增aID int

关于在程序上处理SQLSERVER的事务问题
表A

  aID int 主键自增
  aName varchar(10)

表B
(
  bID int 主键自增
  aID int 指向表A的aID
  bAge int
)

表A与表B 是1对1关系。
那么程序上实现的需要,
开始一个事务,向表A插入记录,我查询得表A中插入结果,再向表B中插入记录。
两表都插入成功后,提交事务。

但在向表A插入记录后,事务未提交,是无法查询到该记录的自增ID是多少的。所以程序一直停在那里,直到超时。

请教各位大虾应该怎么处理呢?
我用的是sql2008 .net 3.5。


[解决办法]

SQL code
if object_id('A') is not null drop table Aif object_id('B') is not null drop table Bcreate table A(aID int identity(1,1),aName varchar(10))gocreate table B(bID int identity(1,1),aID int ,bAge int)gobegin tran insert into A select 'Name1';insert into B select @@IDENTITY,20--or insert into B select IDENT_CURRENT('A'),20--or insert into B select SCOPE_IDENTITY(),20commit transelect * from Aselect * from B
[解决办法]
建议把事务写在存储过程里,而非用ADO.net的控件控制.

[解决办法]
这类的工作用触发器实现最简单

热点排行