SQL Server外键约束与建立外键约束的方案


  本文标签:SQL Server外键约束

  我们今天主要向大家介绍的是SQL Server外键约束与SQL Server建立外键约束的3种方案的介绍,我前两天在相关网站看见SQL Server建立外键约束的3种方案的资料,觉得挺好,就拿出来供大家分享  。

  1.Enterprise Manager中,Tables,Design Table,设置Table的properties,

  可以建立constraint, reference key;

  2.Enterprise Manager中,Diagrams, new Diagrams,建立两个表的关系  。

  3.直接用transact sql语句  。

  三个方法都需要先建立数据表  。

  创建表author :

  1. CREATE TABLE [dbo].[author] (  
  2. [ID] [bigint] NOT NULL ,  
  3. [AuthorName] [char] (10) NULL ,  
  4. [address] [char] (480) NULL ,  
  5. [introduction] [ntext] NULL   
  6. )  

  创建表myBBS:

  1. REATE TABLE [dbo].[myBBS] (  
  2. [ID] [bigint] IDENTITY (1, 1) NOT NULL ,  
  3. [authorId] [bigint] NOT NULL ,  
  4. [Title] [char] (40) NULL ,  
  5. [Date_of_Created] [datetime] NULL ,  
  6. [Abstract] [char] (480) NULL ,  
  7. [Content] [ntext] NULL   
  8. )  

  设置表myBBS中的authorId为外键,参照author表的Id字段,直接使用transact sql语句,过程如下:

  增加表mybbs(authorId)的SQL Server外键约束FK_mybbs_author,表myBBS中的authorId受表author中的主键ID约束:

  1. BEGIN TRANSACTION  
  2. alter table dbo.mybbs add constraint FK_mybbs_author  
  3. foreign key (authorId)  
  4. references dbo.author([id]) ON UPDATE CASCADE ON DELETE CASCADE 

  删除SQL Server建立外键约束FK_mybbs_author:

  1. alter table dbo.mybbs drop constraint FK_mybbs_author  
  2. rollback   
  3. commit transaction 

  上面ON UPDATE CASCADE,ON DELETE CASCADE两个选项,指明以后author表的id字段有delete,update操作时,myBBS表中的id也会被级联删除或更新  。如果没有选中,是不可以对author表中已被myBBS表关联的id进行update或者delete操作的  。

  

  原文标题:SQL Server中的外键约束

  连接:http://www.cnblogs.com/jasonwbd/articles/1153661.html