外键(外键 (FK):列或列的组合,其值与同一个表或另一个表中的主键 (PK) 或唯一键相匹配。也称作参照键。)约束与主键约束(主键 (PK):唯一标识表中的所有行的一个列或一组列。主键不允许空值。不能存在具有相同的主键值的两个行,因此主键值总是唯一标识单个行。表中可以有不止一个键唯一标识行,每个键都称作候选键。只有一个候选键可以选作表的主键,所有其它候选键称作备用键。尽管表不要求具有主键,但定义主键是很好的做法。 在规范化的表中,每行中的所有数据值都完全依赖于主键。例如,在以 EmployeeID 作为主键的规范化的 employee 表中,所有列都应包含与某个特定职员相关的数据。该表不具有 DepartmentName 列,因为部门的名称依赖于部门 ID,而不是职员 ID。)或唯一约束(UNIQUE 约束:强制非主键上的实体完整性的约束。UNIQUE 约束确保未输入重复值,并创建一个索引以增强性能。)一起在指定表中强制引用完整性。例如,可以在 publishers 表的 title_id 列中放置一个外键约束,以保证这一列中的输入值与 titles 表 title_id 列中的现有值匹配。
在数据库关系图中,当创建从一个附加了主键约束或唯一约束的表到另一个表之间的关系时,外键约束将自动添加到指定的列上。
1、查看外键特性
当要查看在关系中作为外键方的列时,查看关系的外键特性。如果外键列与主键相关,那么数据库图关系图中的主键列由行选择器中的主键符号 标识。
查看关系的外键特性
I、在数据库关系图中,右击对应于外键的关系线,然后从快捷菜单中选择"属性"命令。
-或-
为包含要修改的外键的表打开表设计器,在表设计器中右击,然后从快捷式菜单中选择"属性"命令。
II、选择"关系"选项卡。
III、确保在"选定的关系"列表中选定关系。
IV、"外键表"列显示在关系中作为外键方的每一列的名称。
2、修改外键
当要更改与主键表中的列相关的列时,修改关系的外键方。
修改外键
I、在数据库关系图中右击与要修改的外键对应的关系,然后从快捷菜单中选择"属性"命令。
-或-
为包含要修改的外键的表打开表设计器,在表设计器中右击,然后从快捷式菜单中选择"属性"命令。
II、选择"关系"选项卡。
III、从"选定的关系"列表中选择关系。
IV、在"外键表"列中,展开第一行中的列表。
V、从列表中选择不同的表列。外键列必须与主键列的数据类型及大小相匹配,下面3种情况除外:
char 列或 sysname 列可以与 varchar 列相关。
binary 列可以与 varbinary 列相关。
用户定义数据类型可以与其基本类型相关。
只要一移出属性页的网格,对关系属性所做的任何更改即生效。当保存表或关系图时,约束即在数据库内被更新。
注意 在数据库关系图中修改关系时,相关的两个表均被标记为已修改。因此,每个表在任何其它包含该表的关系图中也被标记为已修改。
3、创建 CHECK 约束时检查现有数据
当创建关系时,如果需要对现有数据以及新数据应用外键约束,则选择该选项以检查现有数据。
创建 CHECK 约束时检查现有数据
I、在数据库关系图中选择附加了外键约束的表。
II、右击表并选择"属性"命令。
III、选择"关系"选项卡。
IV、从"选定的关系"列表中选择关系。
V、选择"创建中检查现存数据"复选框。
保存表或关系图时将应用外键约束。如果在保存过程中遇到任何违反约束的行为,则不能保存表。
4、对 INSERT 和 UPDATE 语句禁用外键约束
如果知道新数据将违反约束或约束仅应用于数据库中的现有数据,则选择该选项以在 INSERT 和 UPDATE 事务期间禁用外键约束。
对 INSERT 和 UPDATE 语句禁用外键约束
I、在数据库关系图中,右击包含外键的表,然后从快捷菜单中选择"属性"命令。
-或-
为包含要修改的外键的表打开表设计器,在表设计器中右击,然后从快捷式菜单中选择"属性"命令。
II、选择"关系"选项卡。
III、从"选定的关系"列表中选择关系。
IV、清除"对 INSERT 和 UPDATE 强制关系"复选框。
添加或修改数据后,若要确保约束能应用到后续的数据修改中,应该选择该选项。
注意 如果打算使用触发器执行数据库操作,则必须禁用外键约束才能使触发器运行。
5、对复制禁用外键约束
SQL Server 支持复制。如果约束针对源数据库,并且可能会不必要地阻止新数据输入到目的数据库中,则选择该选项以在复制期间禁用外键约束。
对复制禁用外键约束
I、在数据库关系图中,右击包含外键的表,然后从快捷菜单中选择"属性"命令。
-或-
为包含要修改的外键的表打开表设计器,在表设计器中右击,然后从快捷式菜单中选择"属性"命令。
II、选择"关系"选项卡。
III、从"选定的关系"列表中选择关系。
IV、清除"对复制启用关系"复选框。
6、删除外键约束
当要删除强制引用完整性要求时,删除外键。
删除外键约束
在数据库关系图中,删除代表要删除的外键约束的关系线。
注意 从数据库关系图中删除关系时,相关表在所有包含它的关系图中将被标记为已修改。
【责编:admin】
--------------------next---------------------