您的位置:首页 > 运维架构

Looping over the databases on a server

2016-08-20 18:08 309 查看
SP_MSFOREACHDB

获得所有实例下数据库名称

EXEC sp_MSForEachDB 'PRINT "?"'

 

sp_MSforeachtable

 

USE MASTER
GO
SP_HELPTEXT sp_MSforeachtable

这个系统存储过程有7个参数:
@command1 nvarchar(2000),  --第一条运行的T-SQL指令
@replacechar nchar(1) = N'?',   --指定的占位符号
@command2 nvarchar(2000) = null,--第二条运行的T-SQL指令
@command3 nvarchar(2000) = null, --第三条运行的T-SQL指令
@whereand nvarchar(2000) = null, --可选条件来选择表
@precommand nvarchar(2000) = null, --在表前执行的指令
@postcommand nvarchar(2000) = null --在表后执行的指令

 

获取库下面所有表和行数

EXEC sp_MSForEachTable 'PRINT ''?''; SELECT ''?'' as [TableName],
COUNT(*) AS [RowCount] FROM ?;'

查看所有表行数,和表空间信息:

EXEC sp_MSForEachTable 'PRINT ''?''; SELECT ''?'' as [TableName],
COUNT(*) AS [RowCount] FROM ?;EXEC SP_SPACEUSED "?"'

 

更新所有表统计信息:

sp_msforeachtable 'update statistics ?'

 

获得所有的数据库的存储空间
exec sp_MSforeachdb  'select  "?";EXEC sp_spaceused'

 

所有数据库信息

EXEC sp_MSforeachdb 'USE ? EXEC sp_helpfile;'

 

更改所有数据库的拥有者为'sa'

EXEC sp_MSforeachdb 'USE ?; EXEC sp_changedbowner ''sa'''

 

检查数据库完整性

EXEC sp_MSforeachdb 'use ?; DBCC CHECKDB'

 

删除数据库所有表数据(小心操作)

EXEC sp_MSforeachTABLE 'TRUNCATE TABLE ?'

EXEC sp_MSforeachTABLE "DELETE FROM ?"
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐