SMO 表 DBCC 包示例

SMOTablesDBCC 示例包说明了如何使用 Foreach 循环容器中的 Foreach SMO 枚举器来枚举 AdventureWorks 数据库中的用户表。首先,脚本任务检索架构名称和表名称,然后将其放入两个变量中。然后,执行 SQL 任务使用这两个变量执行 DBCC CHECKCONSTRAINTS 命令。

ms160947.note(zh-cn,SQL.90).gif注意:
为了使包能够在 64 位环境中运行,脚本任务的 PreCompile 属性应设置为 True。如果要使用调试工具单步执行脚本,则应将属性设置为 False

有关详细信息,请参阅 SQL Server 2005 联机丛书中的主题“Foreach 循环容器”、“脚本任务”和“执行 SQL 任务”。

ms160947.note(zh-cn,SQL.90).gif重要提示:
提供的示例仅供学习使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,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 运行包

  1. 打开命令提示符窗口。

  2. 将目录更改为 C:\Program Files\Microsoft SQL Server\90\DTS\Binn,即 dtexec 所在的位置。

  3. 键入下列命令:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\SmoTablesDBCC\SmoTablesDBCC\SmoTablesDBCC.dtsx"
    
  4. Enter

有关如何使用 dtexec 实用工具运行包的详细信息,请参阅 SQL Server 2005 联机丛书中的“dtexec 实用工具”主题。

在 Business Intelligence Development Studio 中运行包

  1. 打开 Business Intelligence Development Studio。

  2. 在**“文件”菜单上,指向“打开”,再单击“项目/解决方案”**。

  3. 找到 SmoTablesDBCC 文件夹,然后双击名为 SmoTablesDBCC.sln 的文件。

  4. 在**“解决方案资源管理器”中,右键单击“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