sp_MSforeachdb 跌代每一个SQL SERVER中数据库的实例.替代使用游标,这个非正式的存储过程极大帮助我运行一些相对我本地数据库服务器的命令.这儿有一些实际使用sp_MSforeachdb 日常任务的场景.
打印SQL Server实例所有数据库的名称.
EXEC sp_MSforeachdb 'USE ?; PRINT DB_NAME()'
打印SQL Server实例所有数据库中所有表
EXEC sp_MSforeachdb 'USE ? SELECT DB_NAME() + ''.'' + OBJECT_NAME(object_Id) FROM sys.tables'
打印SQL Server实例所有数据库中所有表(剔除master, model, msdb and tempdb数据库)
EXEC sp_MSforeachdb 'USE ? SELECT OBJECT_NAME(object_Id) FROM sys.tables where DB_NAME() NOT IN(''master'', ''model'', ''msdb'', ''tempdb'')'
显示SQL Server实例所有数据库的所占空间
EXEC sp_MSforeachdb 'USE ?; EXEC sp_spaceused'
显示SQL Server实例所有数据库中物理名称与特性(size,growth,usage)
EXEC sp_MSforeachdb 'USE ? EXEC sp_helpfile;'
更改所有数据库的拥有者为'sa'
EXEC sp_MSforeachdb 'USE ?; EXEC sp_changedbowner ''sa'''
检查数据中所有对象逻辑与物理是否完整.
sp_MSforeachdb 'DBCC CHECKDB(?)'
类似的你能备份所有数据库,或做一CHECKSUM 有用的存储过程.
Author: Petter Liu http://wintersun.cnblogs.com