--查看某个对象的依赖对象 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) = null as */ /* 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 */
以上有关sp_MSforeachdb和sp_MSforeachtable都是sqlserver自带的,以上脚本中只是为了方便执行时添加对应参数,只是将参数列表列出,如果有想看这两个procedure详细脚本,大家可以sp_helptext一下就可以看到了
sp_MSforeachObject不是sqlserver自带的,需要自己创建上去。
具体脚本可以从以下链接中获取,本文也基本是参考以下链接
--http://www.cnblogs.com/piaoqingsong/archive/2007/06/12/780290.html
以上是自己学习过程的整理,如有任何问题希望大家能够留言跟我一起讨论