sqlserver怎么加外键啊?

解决方案 »

  1.   

    ALTER TABLE TB
    ADD CONSTRAINT F FOREIGN KEY REFERENCES TA(ID)
      

  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 约束)列的引用完整性要求。在创建表时创建 FOREIGN KEY 约束Transact-SQLSQL-DMO在已有表中创建 FOREIGN KEY 约束Transact-SQL企业管理器SQL-DMO创建 FOREIGN KEY 约束时不对现有数据进行检查Transact-SQL企业管理器SQL-DMO修改 FOREIGN KEY 约束企业管理器对 INSERT 和 UPDATE 语句禁用 FOREIGN KEY 约束Transact-SQL企业管理器SQL-DMO复制时禁用 FOREIGN KEY 约束Transact-SQL企业管理器SQL-DMO删除 FOREIGN KEY 约束Transact-SQL企业管理器SQL-DMO
      

  3.   

    create table cb --从表
    (
      cb_id int primary key 
                FOREIGN KEY REFERENCES zb(zb_id)
    )
    go
      

  4.   

    --直接创建
    create table cb --从表
    (
      cb_id int primary key 
                foreign key references zb(zb_id)
    )
    go--已有表,添加
    alter table cb add constraint fk_cb foreign key references(zb_id)
    go
      

  5.   

    右键某表
    设计表
    选择某字段
    check约束
    选关系页
    ....
      

  6.   

    表 'BuildCompletion' 的外键中引用列的数目与被引用列的数目不等。ALTER TABLE BuildCompletion ADD CONSTRAINT F FOREIGN KEY REFERENCES Project(id)