现在的问题是执行存储过程的时候会一直在执行,并且这个时候MstCount被锁了--
因为你加了锁了,with (Serializable, tablockx)
因为你加了锁了,with (Serializable, tablockx)
解决方案 »
- 重分求教一个mssql疑难问题,请高手进来看看:
- 多表查询分页后按时间倒叙排列的问题
- BROUD BY 与ORDER BY可以并存吗?
- 两张表联合查询的问题,急!!多谢!!
- 我是复制的表,可是如何用sql语句查看主键呢?比如下面表Customers的主键
- 接前面的4 个例表~
- 关系数据库中的连接运算,
- *****关于键的种类!*****
- 请问使用游标对效率有什么影响?如果使用游标,这段代码该怎样写?不用呢?
- 表名可不可以做存储过程的参数
- SQL 2005 查单个分区的记录总数
- 如何用SQL2005 配置发送邮件啊! 网上我查看了却大都是SQL2000的,而有一篇是SQL2005的却要谈到outlook的设置,我没有outlook不行吗?
--with (Serializable ===> with(holdlock...共享锁保留到事务完成,
所以你的事务没有完成是不会放开锁的
高手们都在忙什么呢
VALUES (....)COMMIT TRAN--若是能成功,就绝对不是分布式事务的问题。
检查MSDTC的配置.另
>>
你再确认一下,你的正式表是远端服务器上的还是本地的。
那问题就更明确了,是MSDTC的问题。
create table #a(aa int)
GOinsert into #a
select * from [*.*.*.*].db.dbo.table begin tran SET @difSCMM = (SELECT Counter FROM dbo.MstCount WHERE ID = 1)
update #a set aa=@difSCMM commit trandrop table #a
--这样能否成功?
create table #a(aa int)
GOinsert into #a
select * from [*.*.*.*].db.dbo.table begin tran SET @difSCMM = (SELECT Counter FROM dbo.MstCount WHERE ID = 1) COMMIT TRANupdate #a set aa=@difSCMM drop table #a