首页 > 代码库 > sp_MSforeachdb&sp_MSforeachtable&sp_MSforeachobject&查看某个对象的依赖对象

sp_MSforeachdb&sp_MSforeachtable&sp_MSforeachobject&查看某个对象的依赖对象

--查看某个对象的依赖对象EXEC sp_MSforeachdb use ? ; IF EXISTS(SELECT top 1 1 FROM sys.syscomments WHERE text LIKE ‘‘%test%‘‘)SELECT ‘‘?‘‘ as dbname,object_name(id) as object FROM sys.syscomments WHERE text LIKE ‘‘%test%‘‘‘--统计数据库里每个表的详细情况exec sp_MSforeachtable sp_spaceused ‘‘?‘‘‘ --获得每个表的记录数和容量exec sp_MSforeachtable select ‘‘?‘‘‘,?, sp_spaceused ‘‘?‘‘‘, SELECT count(*) FROM ?  --获得所有的数据库的存储空间exec sp_MSforeachdb  select  ‘‘?‘‘‘,?,sp_spaceused --更新PUBS数据库中已t开头的所有表的统计exec sp_MSforeachtable       print ‘‘*‘‘ update statistics * ,       *,       null,       null,        and o.name like ‘‘t%‘‘‘,       print ‘‘Updating Statistics.....‘‘‘,       print ‘‘Complete Update Statistics!‘‘‘ ----检查所有的数据库exec sp_MSforeachdb  print ‘‘?‘‘ DBCC CHECKDB (?)--删除当前数据库所有表中的数据--exec sp_MSforeachtable ‘Delete from ?‘--exec sp_MSforeachtable ‘Truncate Table ?‘--更新Table1/Table2中note列为NULL的值exec sp_MSforeachtable @command1=Update ? Set note=‘‘‘‘ Where note is null, @whereand= AND o.name in (‘‘Table1‘‘,‘‘Table2‘‘) exec sp_MSforeachObject 4,sp_helptext ‘‘?‘‘‘exec sp_MSforeachObject 1,sp_changeobjectowner ‘‘?‘‘, ‘‘dbo‘‘‘  --当然这个可以应用sp_MSforeachtable 来完成/*Create proc sp_MSforeachdb    @command1 nvarchar(2000),     @replacechar nchar(1) = N‘?‘,     @command2 nvarchar(2000) = null,     @command3 nvarchar(2000) = null,    @precommand nvarchar(2000) = null,     @postcommand nvarchar(2000) = nullas*//*create proc sp_MSforeachtable    @command1 nvarchar(2000),             --第一条运行的T-SQL    @replacechar nchar(1) = N‘?‘,          --指定的占位符    @command2 nvarchar(2000) = null,      --第二条运行的T-SQL       @command3 nvarchar(2000) = null,      --第三条运行的T-SQL    @whereand nvarchar(2000) = null,      --表的选择条件    @precommand nvarchar(2000) = null,    --在表前执行的指令    @postcommand nvarchar(2000) = null    --在表后执行的指令as*/
View Code

 以上有关sp_MSforeachdb和sp_MSforeachtable都是sqlserver自带的,以上脚本中只是为了方便执行时添加对应参数,只是将参数列表列出,如果有想看这两个procedure详细脚本,大家可以sp_helptext一下就可以看到了

sp_MSforeachObject不是sqlserver自带的,需要自己创建上去。

具体脚本可以从以下链接中获取,本文也基本是参考以下链接

--http://www.cnblogs.com/piaoqingsong/archive/2007/06/12/780290.html

 

以上是自己学习过程的整理,如有任何问题希望大家能够留言跟我一起讨论

 

sp_MSforeachdb&sp_MSforeachtable&sp_MSforeachobject&查看某个对象的依赖对象