本文介绍了master数据库中两个非常有用但在SQL Server在线教科书中没有提到的存储过程。
这些
系统过程对于处理以下任务非常方便,如判断使用的存储空间大小、行数、用户表索引
等等。第一个过程sp_MSForEachDB对于感兴趣的服务器上的每个数据库执行三条命令。
@command1:第一个执行的命令
@replacechar:用另一个占位赋替换“?”
@command2:第二个执行的命令
@command3:第三个执行的命令
@precommand:进入循环前执行的命令
@postcommand:循环结束后执行的命令
每个命令集(即使该集合只含有一条命令)作为一个批处理对每个数据库执行,
所以当我们要将捕获的结果输出到文本而不是标准结果集表时,这将非常有用。
为了实现这一要求,选择菜单中的查询按钮|输出结果|输出到文本或者按快捷键[Ctrl]T。
下面的代码返回服务器上每个数据库中用户数据表的数目:
exec sp_MSForEachDB@command1 = "use ? exec sp_SpaceUsed"
The abbreviated output looks like this:简短输出可能如下:
数据库名数据库大小未分配空间大小
--------------------- ------------------
master 5.25 MB1.26 MB
reserved data index_size unused
------------------ ------------------
2808 KB 1144 KB 1080 KB 584 KB
第二个过程sp_MSForEachTable接受7个参数:
@command1:第一个执行的命令
@replacechar:用另一个占位符替换“?”
@command2:第二个执行的命令
@command3:第三个执行的命令
@whereand:Where条件语句 (或 Order By 语句)
@precommand:进入循环前执行的命令
@postcommand:循环结束后执行的命令
通过对要传递的参数命名,可以跳过传递空值的要求。当要执行的命令中含有一个问号时,参数@replacechar十分有用。@whereand参数的实现可以根据过滤器缩小输出的范围。
你还可以加入一个ORDER BY语句。下面的例子返回AdventureWorks数据库中每个数据表的行数,并按照数据表明对它们排序:
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
本文出自 51CTO.COM技术博客
分享到:
相关推荐
接下来,`sp_MSForEachTable`是针对单个数据库内所有用户表进行迭代的存储过程。它的参数包括: 1. `@command1`:首次执行的命令,通常用于打印或操作表名。 2. `@replacechar`:同样用于替换“?”,但在这里通常是...
在Java编程环境中,读取数据库表并将其转换为SQL文件是一项常见的任务,特别是在数据迁移、备份或测试场景中。下面将详细介绍如何实现这个过程,并基于给出的标题和描述进行讲解。 1. **配置文件读取**: 首先,...
数据库操作是计算机编程中的核心技能之一,特别是在使用易语言进行开发时,理解并熟练掌握如何操作SQL至关重要。易语言是一款面向对象的、以中文编程为特色的编程语言,它以其直观的语法和强大的功能深受广大程序员...
10. 安全性:数据库操作还需要考虑安全性,包括用户权限管理、加密、防止SQL注入等,以保护数据免受未授权访问和恶意攻击。 11. 性能优化:优化查询性能是数据库操作的重要方面,包括索引的使用、查询优化、适当的...
这个"SQL CE的数据库操作访问类"是一个专门设计用来简化对SQL CE数据库进行操作的C#类库。 类库的核心功能包括: 1. **连接管理**:类库应该包含建立和管理到SQL CE数据库连接的方法。这通常涉及到创建`...
"JAVA操作SQL数据库"这一主题涵盖了如何使用Java语言与各种SQL(结构化查询语言)数据库进行交互的知识点。以下是一些关键概念和步骤的详细说明: 1. **JDBC(Java Database Connectivity)**:JDBC是Java API,它...
- **备份先于操作**:在执行任何批量操作之前,始终建议先对现有数据库进行备份,以防不测。 - **验证完整性**:附加后,应运行数据库检查以确保数据的完整性和一致性。 4. **批量附加SQL数据库v3.2** 版本号v...
此外,该工具还支持对安全设置(如角色和权限)进行比较,确保全面了解数据库的全部差异。 在使用SQL Compare 13时,首先需要设置源数据库和目标数据库的连接信息,然后执行比较操作。工具会快速分析两个数据库的...
本篇将围绕Java结合`RestltData`获取数据库、数据库表、表字段以及执行SQL等数据源操作的相关知识点进行深入探讨。 首先,`RestltData`这个名字可能是"Result Data"的缩写,它可能是一个用来封装查询结果的对象,...
在SQL Server中,循环是一种控制流结构,常用于执行重复性的任务,比如处理大量数据或在多个表之间进行操作。本篇文章将深入探讨如何利用循环实现跨数据库的数据导入,为数据库管理和数据分析提供实用技巧。 首先,...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,SQL(结构化查询语言)是与所有关系数据库进行交互的标准语言,而PL/SQL是Oracle数据库特有的编程语言,它扩展了SQL的功能,使得数据库管理、开发和维护...
在C#中,我们利用ADO.NET库来连接SQL数据库,创建数据适配器和数据集,用于数据的读取、更新和删除操作。此外,还要实现用户界面,如窗体和控件,以便用户可以直观地进行操作。 2. **企业人事管理系统**: 这个...
例如,如何使用SELECT语句进行复杂的数据检索,如何使用INSERT、UPDATE和DELETE操作对数据进行增删改,以及如何创建表、视图、索引等数据库对象。 2. **SQL高级功能**:如联接(JOIN)、子查询、集合操作(UNION、...
3. 读取工作表数据:使用HSSFSheet对象获取工作表中的行和列数据,例如使用getLastRowNum()方法获取工作表中的行数,然后使用for循环迭代读取每一行数据。 技术要点2:DB2数据库连接和SQL执行 DB2是IBM公司开发的...
规范化是通过对关系模式进行优化,减少数据冗余,避免插入、删除和更新异常,以提升数据库质量。常见的规范化理论包括函数依赖、多值依赖和连接依赖,这些依赖关系构成了关系数据库的结构基础。通常,我们按照函数...
SQL数据库数据脚本导出工具是一种实用的软件应用,它专为数据库管理员和开发人员设计,旨在方便地从SQL数据库中导出数据和结构到文本脚本格式。这个工具的简洁用户界面和强大的功能使得数据库的备份、迁移或分析工作...
JavaSwing图书管理系统结合SQL Server数据库是一个典型的桌面应用开发实例,它主要展示了如何利用Java的Swing库构建用户界面,并与关系型数据库SQL Server进行数据交互。在这个系统中,教师或管理员可以进行图书的...
总的来说,这个影院票务管理系统通过Sql Server数据库的强大支持,实现了对票务信息的有效管理和控制,为影院运营提供了有力的数据保障。同时,它也为学习者提供了一个实践数据库设计与应用的宝贵案例,有助于深化对...
在Java编程中,读取数据库表中的内容并将其转换为SQL文件,然后解析并执行这个文件,是一项常见的数据处理任务。这项操作可能涉及到数据库连接、数据查询、文件操作以及SQL语句的构建与执行。以下将详细介绍这个过程...
4. 处理结果集:如果SQL语句返回结果,使用`ResultSet`对象进行迭代和数据提取。 5. 关闭资源:在完成所有操作后,记得关闭`ResultSet`、`Statement`和`Connection`以释放系统资源。 注意,虽然SQL Server 2000是一...