在本文中,将介绍 sp_MSforeachtable 系统存储过程。 在我们的项目中,我们多次需要处理数据库中的所有表。 这是一个未记录的存储过程,未在 MSDN 书籍中列出。
sp_MSforeachtable 存储过程
此存储过程允许您执行特定任务或者对数据库中的所有表运行查询。 这个存储过程存储在“master”数据库中。 例如:如果要更新数据库中所有表的统计信息,统计表的数量,显示存储在特定数据库中的所有表或者从数据库中删除所有表。 对每个表逐个执行删除、更新或者任何其他操作变得非常繁琐,因此这是对数据库中的每个表运行查询的最佳方式。
语法
USE Database_Name EXEC sp_MSforeachtable @command
其中:
database_name指定要在该数据库下的每个表中运行查询的数据库名称。
@command指定必须针对每个表运行的命令。
使用sp_msforeachtable存储过程
- 循环数据库中的每个表。
- 显示数据库中所有表的大小。
- 在数据库中显示所有表中的行总行数。
- 禁用数据库中所有表的所有约束。
- 从数据库中的表中删除所有数据。
例子
查看数据库 onitroadtestdb 下所有的表名
USE onitroadtestdb EXEC sp_MSforeachtable 'SELECT ''?'''
日期:2020-06-02 22:18:08 来源:oir作者:oir