SMO 表 DBCC 包示例
SMOTablesDBCC 示例包说明了如何使用 Foreach 循环容器中的 Foreach SMO 枚举器来枚举 AdventureWorks 数据库中的用户表。首先,脚本任务检索架构名称和表名称,然后将其放入两个变量中。然后,执行 SQL 任务使用这两个变量执行 DBCC CHECKCONSTRAINTS 命令。
注意: |
---|
为了使包能够在 64 位环境中运行,脚本任务的 PreCompile 属性应设置为 True。如果要使用调试工具单步执行脚本,则应将属性设置为 False。 |
有关详细信息,请参阅 SQL Server 2005 联机丛书中的主题“Foreach 循环容器”、“脚本任务”和“执行 SQL 任务”。
重要提示: |
---|
提供的示例仅供学习使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。 |
要求
运行此示例具有以下要求:
- 找到下列文件并将其复制到 %windir%\Microsoft.NET\Framework\v2.0.xxxxx 目录下(其中 xxxxx 是您的 .NET Framework 的最高版本):
- %ProgramFiles%\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.SqlServer.Smo.dll
- %ProgramFiles%\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.SqlServer.SmoEnum.dll
- %ProgramFiles%\Microsoft SQL Server\90\SDK\Assemblies\Microsoft.SqlServer.ConnectionInfo.dll
- 它所使用的示例包和数据文件必须安装在本地的硬盘驱动器上。
- 您必须安装了 AdventureWorks 数据库并对其具有管理权限。
- 如果仅需要从命令行运行示例包,则必须安装 SQL Server 2005 Integration Services (SSIS)。
- 若要在 SSIS 设计器中打开包并运行示例包,则必须安装 Business Intelligence Development Studio。
有关如何安装示例的详细信息,请参阅 SQL Server 2005 联机丛书中的“Installing Sample Integration Services Packages”主题。若要获取示例的最新版本,包括自从最初发布 SQL Server 2005 以来发布的新示例,请参阅 SQL Server 2005 示例和示例数据库(2006 年 4 月)。
示例包的位置
如果示例安装在默认的安装位置,则 SMOTablesDBCC 示例包位于以下文件夹中:
C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SmoTablesDBCC\SmoTablesDBCC\
运行此示例包需要下列文件:
文件 | 说明 |
---|---|
SmoTablesDBCC.dtsx |
示例包。 |
运行示例
可以使用 dtexec 实用工具从命令行运行包,或在 Business Intelligence Development Studio 中运行包。
使用 dtexec 运行包
打开命令提示符窗口。
将目录更改为 C:\Program Files\Microsoft SQL Server\90\DTS\Binn,即 dtexec 所在的位置。
键入下列命令:
dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SmoTablesDBCC\SmoTablesDBCC\SmoTablesDBCC.dtsx"
按 Enter。
有关如何使用 dtexec 实用工具运行包的详细信息,请参阅 SQL Server 2005 联机丛书中的“dtexec 实用工具”主题。
在 Business Intelligence Development Studio 中运行包
打开 Business Intelligence Development Studio。
在**“文件”菜单上,指向“打开”,再单击“项目/解决方案”**。
找到 SmoTablesDBCC 文件夹,然后双击名为 SmoTablesDBCC.sln 的文件。
在**“解决方案资源管理器”中,右键单击“SSIS 包”文件夹中的 SmoTablesDBCC.dtsx,然后单击“执行包”**。
示例中的组件
下表列出了在示例中使用的 Integration Services 任务、容器和连接管理器。
元素 | 用途 |
---|---|
Foreach 循环 |
Foreach 循环容器,Foreach 循环容器使用 Foreach SMO 枚举器遍历 AdventureWorks 数据库中的表。Foreach 循环容器包括一个脚本和一个执行 SQL 任务。 |
脚本任务 |
脚本任务使用循环的每个迭代上的架构和表的名称更新变量的值。 |
执行 SQL 任务 |
执行 SQL 任务 (DBCC CHECK CONSTRAINTS) 对循环的每个迭代运行 DBCC 命令。 |
OLE DB 连接管理器 |
OLE DB 连接管理器 (local).AdventureWorks,连接到本地服务器上的 AdventureWorks 数据库。 |
示例结果
执行包以后,应查看与下面的输出相似的输出。
输出示例:
Started: 10:41:04 AM
Progress: 2005-03-15 10:41:06.04
Source: DBCC CHECK CONSTRAINTS
Executing query "DBCC CHECKCONSTRAINTS('[dbo].[AWBuildVersion]') WI".: 100% complete
End Progress
Progress: 2005-03-15 10:41:06.07
Source: DBCC CHECK CONSTRAINTS
Executing query "DBCC CHECKCONSTRAINTS('[dbo].[DatabaseLog]') WITH ".: 100% complete
End Progress
…
Progress: 2005-03-15 10:38:16.81
Source: DBCC CHECK CONSTRAINTS
Executing query "DBCC CHECKCONSTRAINTS('[Sales].[Store]') WITH ALL_".: 100% complete
End Progress
Progress: 2005-03-15 10:38:16.91
Source: DBCC CHECK CONSTRAINTS
Executing query "DBCC CHECKCONSTRAINTS('[Sales].[StoreContact]') WI".: 100% complete
End Progress
DTExec: The package execution returned DTSER_SUCCESS (0).
Started: 10:37:25 AM
Finished: 10:38:17 AM
Elapsed: 51.687 seconds