Sql Server級聯操作


問題提出:現在我有三張表,學生Student,課程Course,成績SC

 

1.  學生表Student,主鍵是學號Sno

2.  課程Course,主碼是課程號Cno

3.  成績SC,主碼是Sno和Cno,Sno外鍵約束是Student的Sno,Cno的外鍵約束是Cno

 

現在我需要對Student或者Course進行修改或刪除,希望在SC表中能保持修改或刪除同步,這就需要到級聯操作!


 

方法一、SQL Server 2008 中手動設置“級聯”

這個方法建議在建表時不要加入任何設置外鍵的代碼,如果主碼是兩者或以上的就不適合使用


1.  打開“數據庫關系圖”,若未創建,則創建

2.  選中SC表,右擊選中“關系”,展開“INSERT和UPDATE規范”中選擇級聯

3.  Student表 和 Course 表也要同樣的設置

 

 

方法二、建表時使用級聯代碼添加

 1 IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'SC')
 2             AND OBJECTPROPERTY(ID, 'IsUserTable') = 1)
 3     DROP TABLE SC
 4 Go
 5 CREATE TABLE SC
 6 (    Sno CHAR(10),
 7     Cno CHAR(10),
 8     Grade SMALLINT CHECK (Grade >= 0 AND Grade <= 100) NOT NULL,
 9     
10     PRIMARY KEY (Sno, Cno),
11     FOREIGN KEY (Sno) REFERENCES Student (Sno)
12         ON UPDATE CASCADE
13         ON DELETE CASCADE,
14     FOREIGN KEY (Cno) REFERENCES Course (Cno)
15         ON UPDATE CASCADE
16         ON DELETE CASCADE
17 );

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM