楼主是不是update这段有死锁啊?
update t1 set isUpdated = 1
where isUpdated = 0你再执行一下insert语句,sysprocesses表中有没有锁?

解决方案 »

  1.   

    select ID, a
    where isUpdated = 0
    from ShipStatic这句应该该为 from t1 ,直接拷贝的,忘了改了.
    楼上的老大,我刚才看了 
    锁全是t1 的,还有触发器的...
      

  2.   

    你试下把触发器只保留
    update t1 set isUpdated = 1
    where isUpdated = 0
    这一段,看一下有没有锁死.
      

  3.   

    试了下.只用update  的话没有问题.
      

  4.   

    select ID, a
    where isUpdated = 0
    from ShipStatic这句应该该为 from t1 ,直接拷贝的,忘了改了.
    ----------------------------------------------------------
    你不是每次insert的时候就向LHD插数据吗?那应该把ShipStatic改成inserted
    而且你查询这句有没有结果?
    select * from LHD.HD.DBO.[t1]
      

  5.   

    你不是每次insert的时候就向LHD插数据吗?那应该把ShipStatic改成inserted
    ------我没有用instead 方式的时候也要这么写么?可能问题的关键不在这里,我改城了这样:
    ---begin--
    insert into LHD.HD.DBO.[t1]
    (ID, a) values ('aaa','bb')--end--
    也会死锁,联接服务器也没问题,真摸不着头脑....
    而且你查询这句有没有结果?
    select * from LHD.HD.DBO.[t1]------
    可以出结果,不过要1秒左右的延迟,会不会是延迟的问题?
      

  6.   

    你当前用户在LHD.HD上有insert的权限吗?insert into LHD.HD.DBO.[t1]
    (ID, a) values ('aaa','bb')
    这两句在查询分析器里执行也会死锁吗?
      

  7.   

    那就奇怪了.我们服务器前几天也做了个更新另外一个链接服务器的工作,没有问题啊.只是要设置
    SET XACT_ABORT ON
    SET ANSI_NULLS ON
    SET ANSI_WARNINGS ON
    几项,但不设置它也会报错的,不会死锁啊!帮你顶一下吧.
      

  8.   

    SET XACT_ABORT ON
    SET ANSI_NULLS ON
    SET ANSI_WARNINGS ON
    这几行在什么时候写的啊,谢谢你这么长时间帮忙啊,辛苦啦,呵呵
      

  9.   

    触发器开始的时候写,结束的时候都设为OFF前一阵也是要写链接服务器的触发器,所以积累了几个要向链接服务器里插数据应启用的选项
    declare @db_name varchar(255)
    set @db_name = 'HD'
    EXEC sp_dboption @db_name,'ANSI nulls','ON'
    EXEC sp_dboption @db_name,'QUOTED_IDENTIFIER','ON'
    EXEC sp_dboption @db_name,'CONCAT_NULL_YIELDS_NULL','ON'
    EXEC sp_dboption @db_name,'ANSI_WARNINGS','ON'
    EXEC sp_dboption @db_name,'ANSI_PADDING','ON'
    EXEC sp_dboption @db_name,'ARITHABORT','ON'
    EXEC sp_dboption @db_name,'NUMERIC_ROUNDABORT','OFF'楼主参考下吧,不知道能不能帮到你!
      

  10.   

    时间问题改用了其他方式,谢谢回复 anyway