265.所有的数据库中的触发器及对应的表

90 阅读1分钟
--所有的数据库中的触发器及对应的表

declare @db sysname
create table #t(触发器名 sysname,所在的表名 sysname)

declare tb cursor for
select name from master..sysdatabases 
where name not in('master','model','msdb','Northwind','pubs','tempdb')

open tb
fetch next from tb into @db
while @@fetch_status=0
begin
	insert into #t 
	select REPLICATE('=',128),REPLICATE('=',128)
	union all select '所在的数据库名',@db
	union all select REPLICATE('-',128),REPLICATE('-',128)
	exec('insert into #t
	select space(4)+a.name,space(4)+b.name
	from ['+@db+']..sysobjects a 
		join ['+@db+']..sysobjects b on a.parent_obj=b.id
	where a.xtype=''TR''')
	insert into #t select '',''
	fetch next from tb into @db
end
close tb
deallocate tb

select * from #t
go

drop table #t