• 级联删除


    级联删除练习

    --创建用户表(主表)
    create table UserInfo
    (
    UserId int identity(1,1) primary key ,
    UserName varchar(20),  --用户名
    password varchar(20) not null --密码
    )
    --创建用户详情表(附表)
    create table UserDetails
    (
    id int identity(1,1) primary key,
    name varchar(50) not null, --真实姓名
    userId int
    --方法一: 创建用于级联删除的约束
    --foreign key (userId) references UserInfo(UserId)  on delete cascade
    )
    
    --方法二:创建用于级联删除的约束
    alter table  UserDetails  --约束对象UserDetails
    add constraint [FK_UserDetails_UserInfo]   --添加约束,命名为FK_UserDetails_UserInfo
    foreign key(UserId) references UserInfo(UserId) -- UserDetails表的UserId列引用UserInfo表UserId列的值
    on delete cascade  --级联删除
    
    --插入测试数据
    insert UserInfo values ('ly','jeff')
    insert UserInfo values('wzq','wzqwzq')
    insert UserInfo values('lg','lglg')
     
    insert UserDetails values('李四',1)
    insert UserDetails values('王五',2)
    insert UserDetails values('刘六',3)
    
    
    --测试级联删除
    --删除 UserInfo 主表中UserID=1的同时删除UserDetails从表中UserId=1 的内容 
    delete from userInfo where UserId=1
    
    --删除userDetails从表中UserId=1 对主表无影响
    delete from userDetails where UserId=1
    
    --删除用于级联删除的约束
    ALTER TABLE [dbo].[UserDetails] DROP CONSTRAINT [FK_UserDetails_UserInfo]
    
     --查询
    select *from UserInfo
    select *from UserDetails
    
    
    
    
    sqlserver 支持级联删除语法
    
    alter table  外键表名称
    add constraint 约束名称
    Foreign Key(column[,...n]) 
    references referenced_table_name[(ref_column[,...n])]
    [on delete cascade]
    
    注释
    column:外键表的列名
    referenced_table_name:外键参考的主键表名称
    ref_name:外键要参考的表的主键列
    on delete:删除级联
    

      

  • 相关阅读:
    求1977!
    三进制小数
    回文数C语言
    JAVA知识点必看
    servlet HttpServletRequest
    为什么web工程要输入localhost或者是127.0.0.1
    service $sce or ng-bind-html
    jQuery的deferred对象详解
    理解promise
    理解Angular中的$apply()以及$digest()
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/7352057.html
Copyright © 2020-2023  润新知