sp_MSforeachdb存储过程示例
显示所有数据库:
declare @cmd varchar(250) set @cmd='select ''?''' exec sp_MSforeachdb @cmd
将?替换为} 显示所有数据库
declare @cmd varchar(250) set @cmd='select ''}''' exec sp_MSforeachdb @cmd,@replacechar='}'
在本文中,我描述了SQL Server中的SP_MSForeachDB系统存储过程。
该SP用于将T-SQL语句执行针对SQL Server实例定义的每个数据库。
sp_msforeachdb存储过程
此存储过程允许我们遍历所有数据库以执行特定任务或者在SQL Server实例中对所有数据库运行查询。
它在"主"数据库中找到了此存储过程。
例如:如果要查看存储在SQL Server中的数据库的所有名称,或者要查看每个数据库使用的空间。
一个逐个对每个数据库执行任何操作变得非常繁琐,因此这是针对每个数据库运行查询的最佳方法。
语法
exec sp_MSforeachdb @command1, @replacechar, @command2, @command3, @precommand, @postcommand
其中:
@command1- 指定要执行的第一个 SQL 查询。
@replacechar- 指定 SQL 查询中将被正在处理的数据库名称替换的字符。 默认值为“?”。
@command2 和@command3- 指定附加命令。
@precommand- 指定将在处理任何数据库之前运行的命令。
@postcommand- 指定用于在对所有数据库执行所有命令后运行的命令。
日期:2020-06-02 22:18:08 来源:oir作者:oir