zoukankan      html  css  js  c++  java
  • (转) SQLSERVER 外键约束 以及它的级联删除

    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操作的。

  • 相关阅读:
    Django之admin
    Django之CSRF(跨站请求伪造)
    Django之Cookie
    Django之Session
    Django|第一部
    简单的udp消息收发
    .net core里使用ado.net访问sqlserver数据库
    CentOS8中安装SQLServer
    CentOS里配置.net core运行环境(含后台运行,附ssh长连接)
    发布"dotNet core"到CentOS8
  • 原文地址:https://www.cnblogs.com/kevin1988/p/3618716.html
Copyright © 2011-2022 走看看