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