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

 

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。