sql server中的外鍵約束
來源:互聯網
上載者:User
server
sql server中建立外鍵約束有3中方式:
1.Enterprise Manager中,Tables,Design Table,設定Table的properties,
可以建立constraint, reference key;
2.Enterprise Manager中,Diagrams, new Diagrams,建立兩個表的關係。
3.直接用transact sql語句。
三個方法都需要先建立資料表。
-- 建立表author :
CREATE TABLE [dbo].[author] (
[ID] [bigint] NOT NULL ,
[AuthorName] [char] (10) NULL ,
[address] [char] (480) NULL ,
[introduction] [ntext] NULL
)
-- 建立表myBBS:
REATE TABLE [dbo].[myBBS] (
[ID] [bigint] IDENTITY (1, 1) NOT NULL ,
[authorId] [bigint] NOT NULL ,
[Title] [char] (40) NULL ,
[Date_of_Created] [datetime] NULL ,
[Abstract] [char] (480) NULL ,
[Content] [ntext] NULL
)
設定表myBBS中的authorId為外鍵,參照author表的Id欄位,直接使用transact sql語句,過程如下:
--增加表mybbs(authorId)的外鍵約束FK_mybbs_author,表myBBS中的authorId受表author中的主鍵ID約束:
BEGIN TRANSACTION
alter table dbo.mybbs add constraint FK_mybbs_author
foreign key (authorId)
references dbo.author([id]) ON UPDATE CASCADE ON DELETE CASCADE
--刪除外鍵約束FK_mybbs_author:
--alter table dbo.mybbs drop constraint FK_mybbs_author
--rollback
commit transaction
上面ON UPDATE CASCADE,ON DELETE CASCADE兩個選項,指明以後author表的id欄位有delete,update操作時,myBBS表中的id也會被串聯刪除或更新。如果沒有選中,是不可以對author表中已被myBBS表關聯的id進行update或者delete操作的。