博客
关于我
对SQL数据表和数据库进行迭代操作
阅读量:428 次
发布时间:2019-03-06

本文共 1149 字,大约阅读时间需要 3 分钟。

以下是优化后的内容:

本文将介绍SQL Server中两个实用但未在官方在线教科书中提到的存储过程。这些过程在处理特定任务时非常方便,例如判断存储空间大小、行数以及用户表索引等。第一个存储过程sp_MSForEachDB可对感兴趣的服务器上的每个数据库执行三条命令。@command1、@command2和@command3分别指定要执行的命令,而@precommand和@postcommand则用于循环开始和结束时执行的操作。

需要注意的是,当使用sp_MSForEachDB执行命令时,每个命令集会作为一个批处理对数据库进行处理,即使命令集中只包含一条命令也会这样处理。这对于将捕获结果输出到文本而不是标准结果集表非常有用。要实现这一功能,可以通过菜单中的“查询”按钮,选择“输出结果”并设置为“输出到文本”或使用快捷键[Ctrl]T。

以下是一个示例代码:exec sp_MSForEachDB@command1 = "use ? exec sp_SpaceUsed"。运行该命令后,输出可能如下:

数据库名   数据库大小   未分配空间大小------------------ ------------------ ------------------master         5.25 MB   1.26 MBreserved data 2808 KB 1144 KB 1080 KB 584 KB

第二个存储过程sp_MSForEachTable接受7个参数:@command1、@replacechar、@command2、@command3、@whereand、@precommand和@postcommand。@replacechar用于替换问号,@whereand则用于添加Where或OrderBy条件。通过对参数进行命名,可以跳过传递空值的需求。

以下是一个示例:exec sp_MSForEachTable@command1 = "Print '?'", @command2 = "select count(*) from ?", @whereand = "ORDER BY 1"。运行该命令后,输出结果如下:

[HumanResources].[Department]-----------16[HumanResources].[Employee]-----------290[HumanResources].[EmployeeAddress]-----------290[HumanResources].[EmployeeDepartmentHistory]-----------296

这些存储过程在实际应用中非常实用,能够帮助数据库管理员高效处理日常任务。

转载地址:http://tbruz.baihongyu.com/

你可能感兴趣的文章
PMP知识要点(第九章)
查看>>
PNETLab 镜像包官方下载太慢?不急,最新版本PNET_4.2.10分享!
查看>>
pnpm : 无法加载文件...
查看>>
pnpm 如何安装指定版本
查看>>
pnpm的设计与npm的对比
查看>>
PO VO DTO BO区别及用法
查看>>
pocoserver无限重启_Poco::TCPServer框架解析
查看>>
POCO库中文编程参考指南(4)Poco::Net::IPAddress
查看>>
Quartz基本使用(二)
查看>>
POC项目安装与使用指南
查看>>
Podman核心技术详解
查看>>
pods 终端安装 第三方框架的一些命令
查看>>
Podzielno
查看>>
PoE、PoE+、PoE++ 三款交换机如何选择?一文带你了解
查看>>
PoE三种标准:标准 PoE、PoE+、PoE++,网络工程师必知!
查看>>
POI 的使用
查看>>
poi 读取单元格为null者空字符串
查看>>
poi-tl简介与文本/表格和图片渲染
查看>>
pointnet分割自己的点云数据_PointNet解析
查看>>
POI实现Excel导入Cannot get a text value from a numeric cell
查看>>