zoukankan      html  css  js  c++  java
  • 级联删除

    级联删除练习

    --创建用户表(主表)
    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:删除级联
    

      

  • 相关阅读:
    struts2工作流程
    单播,多播(组播),广播,详细讲解呀
    UDP和TCP两种协议的传输数据长度分析
    内置方法 call enter exit
    内置方法 new-del
    内置方法 str-repr
    疏忽知识点记忆(待补充)
    判断一个数据类型的属性的多种方法与判断是否是继承
    反射
    初始化,实例化
  • 原文地址:https://www.cnblogs.com/hao-1234-1234/p/7352057.html
Copyright © 2011-2022 走看看