0
我在創建我的表後嘗試輸入我的主鍵和外鍵。不過,我的外鍵存在問題,並希望得到任何幫助!這裏是我的代碼:SQL Server 2008外鍵錯誤
Create Table EMPLOYEE
(
SSN_Number CHAR(9) NOT NULL,
First_Name Varchar(15)NOT NULL,
Mid_Name Char,
Last_Name Varchar(15) NOT NULL,
Birthday Date,
Address Varchar(50),
Gender Char,
Salary Money default 8000,
Supervisor_SSN Char(9),
Department_Number int
);
ALTER TABLE EMPLOYEE
ADD CONSTRAINT pk_employee PRIMARY KEY (SSN_Number);
ADD CONSTRAINT ck_employee CHECK (Gender IN ('M', 'm', 'F', 'f'))
ADD CONSTRAINT fk_employee FOREIGN KEY (Supervisor_SSN) REFERENCES employee (SSN_Number) ON DELETE SET NULL;
我得到的外鍵的錯誤是:
消息1785,級別16,狀態0,第1行
引進國外KEY約束 'fk_employee' 上表'員工'可能會導致週期或多個級聯路徑。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY約束。Msg 1750,Level 16,State 0,Line 1
無法創建約束。查看以前的錯誤。
我不認爲你可以使用CASCADE與自引用外鍵。 (事實上,我並不是一個非常喜歡使用CASCADE的人)。通常,刪除擁有下屬的員工的邏輯將以這樣一種方式編寫,即首先重新分配這些下屬。 – 2014-10-29 17:42:22
這是學校的一項任務,方向明確要求我以這種方式編寫參考。 – Gunner89 2014-10-29 18:12:01
好吧,那麼這些信息必須以某種方式放在筆記或課程資源中,不是嗎?或者,也許你的教師不太清楚SQL Server是如何工作的?你能告訴我們你的具體作業方向嗎? (並不是說我們真的應該幫助你做家庭作業。) – 2014-10-29 18:19:35