Posts Tagged ‘SQL Server’
两个特别的存储过程
星期二, 八月 26, 2008 10:35 No Comments简介
sp_msforeachdb 和 sp_msforeachtable 是非常有用的存储过程, 他们允许你遍历SQL Server实例中的全部数据库和表, 并对这些数据库和表执行命令. 我作为一个DBA每天都在使用它们. 两个存储过程都使用问号(?)作为一个置换符. 对于sp_msforeachdb, “?”表示数据库名称, 对于sp_msforeachtable, “?”表示表名称.
sp_msforeachdb
示例 #1 - 可以使用以下命令检查实例中的每个数据库:
sp_msforeachdb ‘dbcc checkdb( ”?” )’
示例 #2 - 修改实例中所有数据库的所有者为sa.
sp_msforeachdb ‘IF ”?” NOT IN (”master”, ”model”, ”msdb”, ”tempdb”)
BEGIN
print ”?”
exec [?].dbo.sp_changedbowner ‘’sa”
END’
**注意: 我使用if语句来过滤掉系统数据库
示例 #3 - 可以使用以下命令检查数据库中的每个表:
sp_msforeachdb ‘dbcc checktable( ”?” )’
示例 #4 - 压缩实例中的所有数据库. 谨慎使用这个命令. 不要在业务时间使用在业务数据库上.
sp_msforeachdb ‘dbcc ShrinkDatabase( ?, 10 )’
示例 #5 - 为实例中所有数据库添加用户 [...]