“外键关系”对话框 (Visual Database Tools)

使用此对话框可以在数据库中的表之间创建和修改关系。在外键关系中,FOREIGN KEY 约束与 PRIMARY KEY 或 UNIQUE 约束协同工作,以在指定表之间强制实施引用完整性。例如,可以对 Order_Details 表的 ProductID 列设置一个 FOREIGN KEY 约束,以确保该列中的输入值与 Products 表的 ProductID 列中的现有值匹配。

注意注意

如果表是为复制发布的,则必须使用 ALTER TABLETransact-SQL 语句或 SQL Server 管理对象 (SMO) 来更改架构。使用表设计器或数据库关系图设计器更改架构后,会尝试删除并重新创建表。由于您不能删除已发布的对象,因此架构更改将失败。

若要访问此对话框,请打开具有外键的表的表定义,右键单击表定义网格,再单击**“关系”**。

选项

  • 选定的关系
    列出现有的关系。选择一个关系将在右侧的网格中显示其属性。如果该列表为空,则表示尚未为该表定义关系。

  • 添加
    创建新关系。必须在设置**“表和列规范”**之后,该关系才会生效。

  • 删除
    在**“选定的关系”**列表中删除所选的关系。若要取消添加关系,请使用此按钮来移除关系。

  • 常规类别
    展开此项可显示**“在创建或重新启用时检查现有数据”以及“表和列规范”**。

  • 在创建或重新启用时检查现有数据
    根据约束对创建或重新启用约束前表中的全部已有数据进行验证。

  • 表和列规范类别
    展开此项可显示哪些表中的哪些列用作关系中的外键和主键(或唯一键)。若要编辑或定义这些值,请单击属性字段右侧的省略号 (…)

  • 外键基表
    显示哪个表包含用作所选关系中外键的列。

  • 外键列
    显示哪个列用作所选关系的外键。

  • 主/唯一键基表
    显示哪个表包含用作所选关系中主键(或唯一键)的列。

  • 主/唯一键列
    显示哪个列用作所选关系的主键(或唯一键)。

  • 标识类别
    展开此项可显示**“名称”“说明”**的属性字段。

  • 名称
    显示关系的名称。在创建新关系时,将基于表设计器的活动窗口中的表为其指定默认名称。您可以随时更改该名称。

  • 说明
    描述该关系。若要编写更详细的说明,请单击**“说明”**,再单击属性字段右侧显示的省略号 (...)。这可以提供一个更大的文本编写区域。

  • 表设计器类别
    展开此项可显示**“在创建或重新启用时检查现有数据”“强制用于复制”**的信息。

  • 强制用于复制
    指示当复制代理对此表执行插入、更新或删除操作时是否强制约束。有关详细信息,请参阅使用 NOT FOR REPLICATION 来控制约束、标识和触发器

  • 强制外键约束
    指示如果对关系中列数据的更改会使外键关系的完整性失效,是否允许进行这样的更改。如果不允许这样的更改,则选择**“是”;如果允许这样的更改,则选择“否”**。

  • INSERT 和 UPDATE 规范类别
    展开此项可显示关系的**“删除规则”“更新规则”**的信息。

  • 删除规则
    指定当用户尝试删除某一行而该行包含外键关系涉及的数据时将发生的情况。

    • 不执行任何操作 错误消息告知用户不允许进行删除并将回滚 DELETE。

    • 级联 删除所有包含外键关系所涉及数据的行。如果该表将包含在使用逻辑记录的合并发布中,则不要指定 CASCADE。有关逻辑记录的详细信息,请参阅通过逻辑记录对相关行的更改进行分组

    • 设置空 如果相应表的所有外键列都可接受空值,则将该值设置为空。不应用 SQL Server 2000。

    • 设置默认值   如果表的所有外键列均已定义默认值,则将值设置成为该列定义的默认值。不应用 SQL Server 2000。

  • 更新规则
    指定当用户尝试更新某一行而该行包含外键关系涉及的数据时将发生的情况。

    • 不执行任何操作   错误消息告知用户不允许进行更新并将回滚 UPDATE。

    • 级联   更新所有包含外键关系所涉及数据的行。如果该表将包含在使用逻辑记录的合并发布中,则不要指定 CASCADE。有关逻辑记录的详细信息,请参阅通过逻辑记录对相关行的更改进行分组

    • 设置空 如果相应表的所有外键列都可接受空值,则将该值设置为空。不应用 SQL Server 2000。

    • 设置默认值   如果表的所有外键列均已定义默认值,则将值设置成为该列定义的默认值。不应用 SQL Server 2000。