演练:创建和运行数据生成计划

更新:2007 年 11 月

在本演练中,将创建一个数据生成计划,然后运行该计划来用随机生成的数据填充测试数据库。首先创建一个数据库项目,然后将其部署到独立的测试数据库。可以使用独立的数据库测试数据生成,而不影响您的生产数据或数据库。

先决条件

若要完成此演练,需要以下组件:

  • Visual Studio Team System Database Edition

  • Microsoft SQL Server 2005 或 SQL Server 2000

  • 可以访问安装有 Northwind 数据库的数据库服务器。

创建数据库项目

首先创建一个数据库项目,并从 Northwind 数据库导入架构。

说明:

在团队环境下,可以从源代码管理系统签出现有项目来处理数据库项目。有关更多信息,请参见团队环境中的数据库创建和部署概述

创建数据库项目

  1. 在“文件”菜单上,指向“新建”,然后单击“项目”。

    将出现“新建项目”对话框。

  2. 在“项目类型”列表中,展开“数据库项目”节点,然后单击“Microsoft SQL Server”。

  3. 在“模板”列表中,单击或“SQL Server 2000”。

  4. 在“名称”中,键入“WalkthroughDataGenerator”,然后单击“确定”。

    即会创建一个包含 WalkthroughDataGenerator 空项目的解决方案。这就是您的数据库项目。在您使用数据库项目时,其他人都不能对其进行访问。

  5. 在“解决方案资源管理器”或“架构视图”中,单击“WalkthroughDataGenerator”。

  6. 在“数据”菜单上,单击“导入数据库架构”。

    说明:

    也可以在“解决方案资源管理器”或“架构视图”中右击 WalkthroughDataGenerator,然后单击“导入数据库架构”。

    即会出现“将数据库架构导入数据库项目中”对话框。

  7. 在“源数据库”列表中,单击与现有 Northwind 数据库对应的连接。

    重要说明:

    如果尚未连接该数据库,则必须先单击“新建连接”创建到该数据库的连接。有关更多信息,请参见如何:创建数据库连接

  8. 单击“确定”。

    架构导入后,与数据库中的对象对应的项目项显示在“解决方案资源管理器”和“架构视图”中数据库项目的下面。

    说明:

    即使是连接到数据库导入架构,现在也已断开连接并脱机工作。

部署到沙箱

下一步,将项目部署到新数据库。这样可创建具有 Northwind 架构,但没有数据的数据库。此数据库为独立环境(或沙箱),您可以在其中开发和测试数据库。

生成数据库项目

  1. 在“解决方案资源管理器”中,选择数据库项目 WalkthroughDataGenerator。

  2. 在“项目”菜单上,单击“WalkthroughDataGenerator 属性”。

    将显示项目属性。

  3. 单击“生成”选项卡。

  4. 单击标有“...”的按钮以显示“连接属性”对话框。

  5. 设置要使用的数据库的连接属性,然后单击“确定”。

    “目标连接”框用正确的连接字符串填充。

    警告:

    应在测试服务器、开发服务器或本地计算机上创建新数据库。不应使用生产服务器。

  6. 在“目标数据库名称”文本框中键入“NorthwindDataGenerator”。

  7. 在“文件”菜单上,单击“全部保存”。

  8. 在“生成”菜单上,单击“生成解决方案”。

    即会基于刚刚设置的项目属性生成部署脚本。在“输出”窗口中查看生成状态,可以在最后一行看到“生成: 1 成功或最新”。

部署数据库项目

  1. 在“解决方案资源管理器”中,选择数据库项目 WalkthroughDataGenerator。

  2. 在“生成”菜单上单击“部署 项目名称”。也可以在“解决方案资源管理器”中右击项目,然后单击“部署”。

    警告:

    应对测试服务器、开发服务器或本地计算机运行此部署。不应使用生产服务器。

    数据库项目部署到新数据库。在“输出”窗口中查看部署状态,可以在最后一行看到“部署已成功”。

创建数据生成计划

下一步,创建数据生成计划。数据生成计划包含有关要用数据填充哪些表和列的信息。有关更多信息,请参见如何:创建数据生成计划

创建数据生成计划

  1. 在“解决方案资源管理器”中,选择“数据生成计划”节点。

  2. 在“项目”菜单上,单击“添加新项”。

    即会出现“添加新项”对话框。

  3. 在“类别”窗格中,单击“数据生成计划”。

  4. 在“模板”窗格中,单击“数据生成计划”。

  5. 在“名称”文本框中,键入“Products.dgen”。

  6. 单击“添加”。

    即会创建数据生成计划。数据生成计划、“数据生成预览”窗口和“列详细信息”窗口都会出现。

    说明:

    如果“列详细信息”和“数据生成预览”窗口尚未打开,可以通过以下方法来打开它们:打开“数据”菜单,指向“数据生成”,然后单击窗口名称。默认情况下,“数据生成预览”窗口和“列详细信息”窗口以选项卡的形式停靠在数据生成计划窗口的底部。若要展开视图,请单击窗口,然后单击“窗口”菜单上的“选项卡式文档”。也可以在标题栏中右击,然后单击“选项卡式文档”。

  7. 在 Products.dgen 设计器中,清除所有表的复选框。

    说明:

    通过使用“在数据生成中包含所有表”和“从数据生成中排除所有表”命令,可以选择或清除所有表。通过右击数据生成计划窗口,或在“数据”菜单上指向“数据生成器”,可以访问这些命令。

  8. 在 Products.dgen 设计器中,选中 Products 表的复选框。

    Categories 和 Suppliers 表也会被自动选中。由于 Products 表具有到 Categories 和 Suppliers 表的外键,因此必须填充所有这三个表才能填充 Products 表。有关更多信息,请参见如何:指定用于数据生成的表

  9. 在“文件”菜单上,单击“全部保存”。

指定数据生成的详细信息

下一步,指定列数据填充方式的详细信息。有关更多信息,请参见为列指定数据生成的详细信息

指定数据生成的详细信息

  1. 设置要生成的数据的行数,方法如下:

    1. 在 Products.dgen 设计器中,单击 Products 表的行。

    2. 单击“相关表”列,使用下拉箭头选择 Categories 表。

    3. 单击“相关表的比率”列并键入 10:1。

    这意味着将为生成的每个类别生成 10 个产品。有关更多信息,请参见如何:指定要生成的行数

  2. 设置要生成的数据的 null 行数,方法如下:

    1. 在 Products.dgen 设计器中,单击 Categories 表的行。

    2. 在“列详细信息”窗口中,单击 Description 列的行。

    3. 在“属性”窗口中,将“null 百分比”属性设置为 10。

    这意味着 Description 列中 10% 的生成数据将包含 NULL。可以打开“数据生成预览”窗口并验证 Description 列是否包含一些 null 值。

  3. 设置生成的数据的文本,方法如下:

    1. 在 Products.dgen 设计器中,单击 Products 表的行。

    2. 在“列详细信息”窗口中,单击 ProductName 列的行。

    3. 单击 Generator 列,使用下拉箭头选择 RegularExpression 数据生成器。

    4. 在“属性”窗口中,按照如下方式设置“表达式”属性:

      (Gala|Fuji|Braeburn|Granny Smith|Red Delicious) Apples
      

    这意味着 ProductName 列中生成的数据将仅包含苹果的种类名称。可以打开“数据生成预览”窗口并验证 ProductName 列是否包含随机生成的苹果名称。有关更多信息,请参见正则表达式生成器

  4. 在“文件”菜单上,单击“全部保存”。

运行生成数据的计划

最后,运行数据生成计划。生成数据之后,可以使用其他工具登录数据库,验证新数据。

运行生成数据的计划

  1. 在“解决方案资源管理器”中,选择 Products.dgen。

    说明:

    数据生成计划也必须打开。如果计划未打开,请先将其打开。

  2. 在“数据”菜单上,指向“数据生成器”,然后单击“生成数据”。

    即会出现“为目标数据库生成数据”窗口。

  3. 在“目标数据库”下拉框中选择 NorthwindDataGenerator 数据库,然后单击“确定”。

  4. 提示在插入新行之前清除表内容时,单击“是”。

    将生成数据。在 Products.dgen 设计器中,状态列用数据生成的状态更新。状态栏显示所有表的数据生成摘要。

  5. (可选)使用其他工具登录数据库。例如,可以使用 Microsoft SQL Server Management Studio 或查询分析器。通过运行以下查询查看新数据:

    说明:

    在该步骤中,还可以使用在 Database Edition 中提供的 Transact-SQL (T-SQL) 编辑器。有关更多信息,请参见使用 Transact-SQL 编辑器编辑数据库脚本和对象

    use NorthwindDataGenerator
    
    select * from Suppliers
    select * from Categories
    select * from Products
    

    验证是否为 Suppliers 表生成了 50 行,为 Categories 表生成了 50 行,为 Products 表生成了 500 行。验证 Categories 表中的 Description 列是否包含 NULL 值。验证 Products 表中的 ProductName 列是否仅包含形式为“<type> Apples”的数据。验证这些类型是不是您在 RegularExpression 生成器的“表达式”属性中指定的类型。

安全性

有关更多信息,请参见数据生成器的安全性

请参见

其他资源

数据库重构演练

使用标准数据生成器

创建自定义数据生成器

生成数据概述

使用数据生成器生成数据