--查看锁信息 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
SQL Server 2000之DELETE FROM TABLE_NAME和TRUNCATE TABLE TABLE_NAME的区别?(1)如果要删除表中的所有数据,那么Truncate table命令比delete命令要快得多. delete命令除了要删除数据外,还对所删除的数据在事务处理日志中做记录,以防止删除失败时可以使用事务处理日志恢复数据;而truncate table命令则只做删除与表有关的所有数据页的操作,因此不能激活触发器.(2)truncate table命令不能用于被别的表的外关键字依赖的表.
直接在isqlw里边,如果选中当前库为故障表所在的库,然后执行delete就会吊死?
请指点,谢谢
isqlw是用户把数据库返回,我自己测试出的同样问题,用户那里跑的是vc程序
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
SQL Server 2000之DELETE FROM TABLE_NAME和TRUNCATE TABLE TABLE_NAME的区别?(1)如果要删除表中的所有数据,那么Truncate table命令比delete命令要快得多. delete命令除了要删除数据外,还对所删除的数据在事务处理日志中做记录,以防止删除失败时可以使用事务处理日志恢复数据;而truncate table命令则只做删除与表有关的所有数据页的操作,因此不能激活触发器.(2)truncate table命令不能用于被别的表的外关键字依赖的表.