创建 ServiceCall 表和 Customers 表之间的关系
1、打开 ServiceCall 表的表设计器,右键单击列网格中的任意位置,然后选择 Relationships(关系);或者使用工具栏上的 Manage Indexes and Keys(管理索引和键)控件。屏幕将显示 Property Pages(属性页)对话框。
2、单击 Relationships(关系)选项卡,然后单击 New(新建)。关系名称默认为 FK_ServiceCall_Customers。
3、将主键表定义为 Customers,将主键列定义为 CustomerID。
4、将外键表定义为 ServiceCall,将外键列定义为 CustomerID。
图6:Property Pages(属性页)对话框
5、单击Close(关闭),然后单击 Save(保存)。
这样,SQL Server 将确保 ServiceCall 数据库不会在 ServiceCall 表中包含这样的行,即其 CustomerID 不会出现在 Customers 表中。
在表设计器中,一个专门用于 SQL Server 2000 的功能是定义级联引用完整性。
在表之间声明引用完整性
1、在服务器资源管理器中,右键单击 Customers 表,然后选择 Design Table(设计表)。将打开表设计器。
2、单击 Relationships(关系)。将显示 Property Pages(属性页)对话框,其中已选定 Relationships(关系)选项卡。在对话框底部,有以下两个选项:
◆Cascade Update Related Fields(级联更新相关字段)- 在主键更新后,使数据库将新键值传播到相应的外键。
◆Cascade Delete Related Records(级联删除相关的记录)- 删除主键表中的行时,使数据库从外键表中删除相应的行。
3、选择 Cascade Delete Related Records(级联删除相关的记录),单击 Close(关闭),然后单击 Save(保存)。设置此选项将使 SQL Server 从 ServiceCall 表中删除与从 Customers 表中删除的每行的 CustomerID 匹配的所有行。
注意:系统将显示一个 Save Warning(保存警告)对话框,其中显示消息“以下各表将保存到数据库中。是否继续?”。将列出 Customers 表和 ServiceCall 表。单击 Yes(是)。显示保存警告信息是因为打开了 Warn about Tables Affected(表受到影响时警告)选项;您可以在 Save Warning(保存警告)对话框中关闭此选项。

图7:选中了Cascade Delete Related Records(级联删除相关的记录)的Relationships(关系)选项卡
重要信息:要使用示例数据填充表,请在 SQL 查询分析器中运行附录1中的数据库加载脚本。
数据库设计器
数据库设计器是一个图形界面,可用于添加或修改数据库表、关系、索引、键和约束等。
注意:数据库设计器要求使用 Visual Studio .NET Enterprise Edition。
您可以为给定的数据库创建任意数目的关系图,一个表可以出现在任意数目的关系图中。这些关系图还可以用来记录数据库的设计。
使用SQL Server 数据库关系图时,需要注意一些事项。有关详细信息,请参阅 Visual Studio .NET 文档中的“SQL Server 数据库的数据库设计器注意事项”。该主题包含了更改数据类型、区分大小写以及其他信息。
