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 2012中的sp_MSforeachdb存储过程

在本文中,我描述了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