天天看點

SQLServer2005/在被引用表 'tab2' 中沒有與外鍵 'fk_tab12tab2' 中的引用列清單比對的主鍵或候選鍵。

                      SQLServer2005/在被引用表 'tab2' 中沒有與外鍵 'fk_tab12tab2' 中的引用列清單比對的主鍵或候選鍵。

  這個原因是由于表2被引用的的字段不是候選鍵或者不是主鍵,說白了就是確定它是唯一的;

 CREATE TABLE tab1

( id int,

  name varchar(30)

  );

     CREATE TABLE tab2

  (

      name2 VARCHAR(30) 

  );

--将表tab2的字段name2作為tab1的外鍵,

  ALTER TABLE tab1 ADD CONSTRAINT fk_tab12tab2  FOREIGN KEY (name) REFERENCES tab2(name2);

--錯誤資訊

//将字段name2作為主鍵,如果按照如下方式建立表,那麼結果通過。

  CREATE TABLE tab2

  (

      name2 VARCHAR(30) PRIMARY KEY

  );

--指令已成功完成。

//将字段name2設為唯一,

   CREATE TABLE tab2

  (

      name2 VARCHAR(30)  UNIQUE

  );

那麼結果也是通過的。

--指令已成功完成。

如果要删除限制:

ALTER TABLE tab1 DROP CONSTRAINT fk_tab12tab2