to Limpire:
   SP4在没有测试过和公司产品的兼容性,所以不敢给用户打该补丁。
    按理说,就是SP3也不该删不掉几千条数据。
    请指点

解决方案 »

  1.   

    sp_lock 看看哪个进程搞死的
      

  2.   

    to happyflystone:
       直接在isqlw里边,如果选中当前库为故障表所在的库,然后执行delete就会吊死?
        请指点,谢谢
      

  3.   

    这几天有6个用户发生同样的问题,同一张表
    isqlw是用户把数据库返回,我自己测试出的同样问题,用户那里跑的是vc程序
      

  4.   

    --查看锁信息
    create table #t(req_spid int,obj_name sysname)declare @s nvarchar(4000)
        ,@rid int,@dbname sysname,@id int,@objname sysnamedeclare tb cursor for 
        select distinct req_spid,dbname=db_name(rsc_dbid),rsc_objid
        from master..syslockinfo where rsc_type in(4,5)
    open tb
    fetch next from tb into @rid,@dbname,@id
    while @@fetch_status=0
    begin
        set @s='select @objname=name from ['+@dbname+']..sysobjects where id=@id'
        exec sp_executesql @s,N'@objname sysname out,@id int',@objname out,@id
        insert into #t values(@rid,@objname)
        fetch next from tb into @rid,@dbname,@id
    end
    close tb
    deallocate tbselect 进程id=a.req_spid
        ,数据库=db_name(rsc_dbid)
        ,类型=case rsc_type when 1 then 'NULL 资源(未使用)'
            when 2 then '数据库'
            when 3 then '文件'
            when 4 then '索引'
            when 5 then '表'
            when 6 then '页'
            when 7 then '键'
            when 8 then '扩展盘区'
            when 9 then 'RID(行 ID)'
            when 10 then '应用程序'
        end
        ,对象id=rsc_objid
        ,对象名=b.obj_name
        ,rsc_indid
     from master..syslockinfo a left join #t b on a.req_spid=b.req_spidgo
    drop table #t
      

  5.   


    SQL Server 2000之DELETE FROM TABLE_NAME和TRUNCATE TABLE TABLE_NAME的区别?(1)如果要删除表中的所有数据,那么Truncate table命令比delete命令要快得多.   delete命令除了要删除数据外,还对所删除的数据在事务处理日志中做记录,以防止删除失败时可以使用事务处理日志恢复数据;而truncate table命令则只做删除与表有关的所有数据页的操作,因此不能激活触发器.(2)truncate table命令不能用于被别的表的外关键字依赖的表.