日期:2014-05-17  浏览次数:20586 次

MS-SQL应用过程中遇到一个问题,超级难。
三表关联,数据批量插入,要求操作期间锁定各表。

三张表分别是A(ID_A,NAME_A)B(ID_B,NAME_B),C(ID_C,ID_A,ID_B)
其中A与B是一对多的关系,通过中间表C互联。
------最佳解决方案--------------------
多表插入 ,那就直接 事务啊


begion transaction t1

begin try

commit t1

end try
begin catch

rollback t1

end catch

end

------其他解决方案--------------------
我看你是超级狠

插入的时候锁定各表

------其他解决方案--------------------
晕,你这样锁表很容易死锁的哦
------其他解决方案--------------------
引用:
三表关联,数据批量插入,要求操作期间锁定各表。

三张表分别是A(ID_A,NAME_A)B(ID_B,NAME_B),C(ID_C,ID_A,ID_B)
其中A与B是一对多的关系,通过中间表C互联。



BT需求。。。

begin tran
insert into a with(xlock,tablock)
insert into b with(xlock,tablock)
insert into c with(xlock,tablock)
commit tran


------其他解决方案--------------------
或者先:
begin tran
select top 1 1 from  a with(xlock,tablock ) 
select top 1 1 from  b with(xlock,tablock ) 
select top 1 1 from  c with(xlock,tablock )
        insert ....
------其他解决方案--------------------
引用:
或者先:
begin tran
select top 1 1 from  a with(xlock,tablock ) 
select top 1 1 from  b with(xlock,tablock ) 
select top 1 1 from  c with(xlock,tablock )
        insert ....

+1
------其他解决方案--------------------
引用:
三表关联,数据批量插入,要求操作期间锁定各表。

三张表分别是A(ID_A,NAME_A)B(ID_B,NAME_B),C(ID_C,ID_A,ID_B)
其中A与B是一对多的关系,通过中间表C互联。



一对多的关系就不用 中间表了吧, 只有多对多 时候才需要
------其他解决方案--------------------
引用:

引用:

引用:

哥几个现在需求变了:
1、连接异地mdf文件。
2、不能有两个以上(包括两个)用户同时访问此文件。
3、三表关联,数据批量插入。三张表分别是A(ID_A,NAME_A)B(ID_B,NAME_B),C(ID_C,ID_A,ID_B)
其中A与B是一对多的关系,通过中间表C互联。
再求解决方案。
------其他解决方案--------------------
引用:
引用:
三表关联,数据批量插入,要求操作期间锁定各表。

三张表分别是A(ID_A,NAME_A)B(ID_B,NAME_B),C(ID_C,ID_A,ID_B)
其中A与B是一对多的关系,通过中间表C互联。



一对多的关系就不用 中间表了吧, 只有多对多 时候才需要


这个东西比较特殊,是需要中间表的。另外我的需求啊变了。
引用:


引用:


引用:

1、连接异地mdf文件。
2、不能有两个以上(包括两个)用户同时访问此文件。
3、三表关联,数据批量插入。三张表分别是A(ID_A,NAME_A)B(ID_B,NAME_B),C(ID_C,ID_A,ID_B)
其中A与B是一对多的关系,通过中间表C互联。