对,所有的入门级SQL书上都讲有的.

解决方案 »

  1.   

    定义主键
    定义主键来强制不允许空值的指定列中输入值的唯一性。如果在数据库中为表定义了主键,则可将该表与其它表相关,从而减少冗余数据。表只能有一个主键。 定义主键 在数据库关系图或表设计器中,单击要定义为主键的数据库列的行选择器。若要选择多个列,请按住 CTRL 键同时单击其它列的行选择器。
    右击列的行选择器,然后选择"设置主键"命令。将自动创建一个名为"PK_"且后跟表名的主键索引;可在属性页的"索引/键"选项卡上找到该索引。 
    警告   如果要重新定义主键,则必须先删除任何与现有主键相关的关系才能创建新主键。将出现一条信息,警告您作为该过程的一部分,将自动删除现有关系。行选择器上的主键符号  用于标识一个主键列。如果主键包含不止一列,则在一列中允许有重复值,但主键中所有列值的每个组合必须唯一。如果定义复合键,主键中的列顺序将与关系图中的表所显示的列顺序相匹配。不过,可以在创建主键后更改列的顺序。有关更多信息,请参见修改主键。
      

  2.   


    创建和修改 FOREIGN KEY 约束
    FOREIGN KEY 约束可以: 作为表定义的一部分在创建表时创建。
    如果 FOREIGN KEY 约束与另一个表(或同一表)已有的 PRIMARY KEY 约束或 UNIQUE 约束相关联,则可向现有表添加 FOREIGN KEY 约束。一个表可以有多个 FOREIGN KEY 约束。
    对已有的 FOREIGN KEY 约束进行修改或删除。例如,要使一个表的 FOREIGN KEY 约束引用其它列。定义了 FOREIGN KEY 约束列的列宽不能更改。 
    说明  若要使用 Transact-SQL 或 SQL-DMO修改 FOREIGN KEY 约束,必须首先删除已有的 FOREIGN KEY 约束,然后再通过新定义重新创建。当向表的现有列添加 FOREIGN KEY 约束时,默认情况下 Microsoft® SQL Server™ 2000 检查列中的现有数据,以确保除 NULL 外的所有数据存在于被引用的 PRIMARY KEY 或 UNIQUE 约束的列中。不过,SQL Server 也可不对列数据的新约束进行检查,不考虑列中的数据而添加新约束。当现有数据已符合新的 FOREIGN KEY 约束,或业务规则要求从此开始强制约束时,使用此选项比较有用。不过,添加约束而不进行数据检查时一定要注意,因为这样放弃了 SQL Server 对表中数据完整性的控制。禁用 FOREIGN KEY 约束
    下列情况可以禁用 FOREIGN KEY 约束: INSERT 和 UPDATE 语句 
    这种情况允许不经约束验证就可修改表中的数据。在执行 INSERT 和 UPDATE 语句过程中,如果新数据违反约束或约束只应适用于数据库中已有的数据,那么禁用 FOREIGN KEY 约束。复制处理。 
    如果一个 FOREIGN KEY 约束为源数据库特有,请在复制时禁用该约束。复制表时,表定义和数据从源数据库复制到目的数据库。这两个数据库通常(但不一定)在不同的服务器上。如果 FOREIGN KEY 约束为源数据库特有而在复制时未禁用,则有可能无谓地妨碍向目标数据库输入数据。删除 FOREIGN KEY 约束,从而删除了强制外键列和另一表中相关主键(或 UNIQUE 约束)列的引用完整性要求。