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) = 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

*/
View Code

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

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

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

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

 

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

 

posted @ 2014-09-12 09:01  shihuai355  阅读(323)  评论(0编辑  收藏  举报