SQL Server外键约束引用无效表

时间:2016-05-28 09:06:32

标签: sql sql-server

我有以下代码:

CREATE TABLE _CLIENT
(
   client_id int ,
   client_name varchar(50),
   type varchar(50),
   constraint _CLIENT_pk PRIMARY KEY(client_id),
   constraint _CLIENT_ch CHECK (client_id>0),
   typee_id INT NOT NULL REFERENCES CLIENT_TYPE(typee_id)
)

CREATE TABLE CLIENT_TYPE
(
   typee_id int NOT NULL,
   name_type varchar(50),
   constraint CLIENT_TYPE_pk PRIMARY KEY(typee_id)
)

外键抛出错误说:

Foreign key 'FK__Number__Name__1CF15040' references invalid table 'Users.Name'

这里有什么不对?

1 个答案:

答案 0 :(得分:2)

我不知道您收到的确切错误消息,但您在当前脚本中有错误,我认为您的意思是此错误:

  

外键' FK ___ CLIENT__typee_i__55BFB948'引用无效表   ' CLIENT_TYPE'

您应首先创建CLIENT_TYPE表,因此脚本应如下所示:

CREATE TABLE CLIENT_TYPE
(
    typee_id INT NOT NULL ,
    name_type VARCHAR(50) ,
    CONSTRAINT CLIENT_TYPE_pk PRIMARY KEY ( typee_id )
)

CREATE TABLE _CLIENT
(
    client_id INT ,
    client_name VARCHAR(50) ,
    type VARCHAR(50) ,
    CONSTRAINT _CLIENT_pk PRIMARY KEY ( client_id ) ,
    CONSTRAINT _CLIENT_ch CHECK ( client_id > 0 ) ,
    typee_id INT NOT NULL
                REFERENCES CLIENT_TYPE ( typee_id )
)

作为一般规则,您应首先创建基表,然后创建依赖于那些表的表。