`
岁月如歌
  • 浏览: 106477 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

SQL的级联更新与级联删除

阅读更多

sqlserver 支持级联更新和删除

oracle 只支持级联删除

 

alter table 表名
add constraint 约束名
foreign key(字段名) references 主表名(字段名)
on delete cascade

语法:
Foreign Key
(column[,...n])
references referenced_table_name[(ref_column[,...n])]
[on delete cascade]
[on update cascade]
注释:
column:列名
referenced_table_name:外键参考的主键表名称
ref_name:外键要参考的表的主键列
on delete:删除级联
on update:更新级联
表的外键约束

SELECT 外键表ID=b.fkeyid
,外键表名称=object_name(b.fkeyid)
,外键列ID=b.fkey
,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid)
,主键表ID=b.rkeyid
,主键表名=object_name(b.rkeyid)
,主键列ID=b.rkey
,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid)
FROM sysobjects a
join sysforeignkeys b on a.id=b.constid
join sysobjects c on a.parent_obj=c.id
where a.xtype='f' AND c.xtype='U'   
    
    
    
查询一个表的所有外键:

SELECT 主键列ID=b.rkey
,主键列名=(SELECT name FROM syscolumns WHERE colid=b.rkey AND id=b.rkeyid)
,外键表ID=b.fkeyid
,外键表名称=object_name(b.fkeyid)
,外键列ID=b.fkey
,外键列名=(SELECT name FROM syscolumns WHERE colid=b.fkey AND id=b.fkeyid)
FROM sysobjects a
join sysforeignkeys b on a.id=b.constid
join sysobjects c on a.parent_obj=c.id
where a.xtype='f' AND c.xtype='U'
and object_name(b.rkeyid)='要查询的表名'   
分享到:
评论

相关推荐

    SQL 级联删除与级联更新的方法

    本篇文章将详细讲解SQL中的级联删除(Cascade Delete)和级联更新(Cascade Update)。 **级联删除(Cascade Delete)** 级联删除是指在删除主表中的一条记录时,所有依赖于该记录的外键也将被自动删除。在创建表...

    mysql级联更新和级联删除

    ### MySQL级联更新与级联删除详解 在数据库设计中,外键约束是维护数据完整性和一致性的重要手段之一。MySQL的InnoDB存储引擎支持多种不同的处理外键的方式,包括级联更新(Cascade Update)和级联删除(Cascade ...

    使用SQL Server触发器实现数据表的级联更新.pdf

    "使用SQL Server触发器实现数据表的级联更新" SQL Server触发器是数据库中的一种机制,用于实现数据的级联更新。触发器可以被看作是一种特殊的存储过程,可以在数据库事件的触发下执行复杂的SQL语句,从而实现比...

    实现年月日的级联更新

    在IT领域,级联更新(Cascading Updates)是一种数据库管理技术,用于当某一字段的值发生改变时,自动更新依赖于该字段的其他相关记录。这种机制在数据一致性、关联性和完整性方面扮演着关键角色,尤其在多表关联的...

    mybatis关联/级联以及动态sql

    MyBatis支持级联保存、更新和删除。这可以通过在Mapper接口的方法上使用`@Cascade`注解或者在XML映射文件中使用`<cascade>`标签来实现。 接着,我们来看动态SQL。动态SQL是MyBatis的一个强大特性,它允许我们在SQL...

    用JDBC实现数据库的级联删除与更新

    根据给定文件的信息,本文将围绕“用JDBC实现数据库的级联删除与更新”这一主题进行深入探讨,包括理解需求、设计思路、具体实现步骤以及相关代码示例。 ### 1. 需求理解 #### 1.1 业务场景 在本案例中,存在两个...

    SQL级联触发器之deleted课件

    接下来,我们将深入探讨SQL级联触发器以及deleted表的相关知识点。 1. **SQL触发器的类型** - INSERT触发器:当向表中插入新记录时触发。 - UPDATE触发器:当表中的记录被更新时触发。 - DELETE触发器:当从表中...

    SQL server创建触发器实现级联删除

    ### SQL Server 创建触发器实现级联删除 在数据库管理中,触发器是一种特殊类型的存储过程,它被设计为响应特定的事件(如插入、更新或删除数据)而自动执行。本文将详细介绍如何在 SQL Server 中创建一个触发器来...

    级联删除笔记【自用0分】

    本文将详细介绍如何在SQL Server中实现级联更新和级联删除,包括通过触发器的方式和使用外键约束的方式。 ### 一、触发器方式 触发器是一种特殊的存储过程,当特定的事件(如INSERT、UPDATE或DELETE)发生时自动...

    MySQL使用外键实现级联删除与更新的方法

    本篇文章将详细讲解如何使用外键在MySQL中实现级联删除和更新。 首先,要使用外键,数据库表必须使用支持外键的存储引擎,如InnoDB。InnoDB引擎提供了事务处理、行级锁定以及外键约束等功能,是实现这些级联操作的...

    省市区三级级联sql

    省市区三级级联sql,提供调整序号的多种数据库语法脚本

    sql数据库省市区表级联文件

    - **级联删除**:当删除父表中的一条记录时,自动删除所有子表中与此记录相关的所有记录。 ### 二、省市区表设计 #### 1. 表结构设计 在文件中,可以看到`province`、`city`和`area`三个表的设计。这些表的设计都...

    Oracle数据库中的级联查询、级联删除、级联更新操作教程

    Oracle数据库中的级联查询、级联删除和级联更新是数据库设计中常用的操作,它们用于在多表关联的关系型数据库中实现数据的联动处理。在Oracle中,这些操作主要涉及外键约束和触发器。 首先,级联查询是通过自连接来...

    Hibernate 一对多、多对一、级联、加载、反转

    例如,如果我们设置级联类型为`CascadeType.ALL`,那么删除一个用户时,与之关联的所有订单也会被删除。这通过`@OneToMany`或`@ManyToOne`上的`cascade`属性实现。 4. **加载策略**:Hibernate提供了多种加载策略,...

    qt实现sqlite3级联删除demo

    在数据库管理中,级联删除是一种常见的功能,它允许在删除一个表中的记录时,自动删除与之相关联的其他表中的记录。在Qt环境下,结合SQLite3数据库,我们可以实现这一功能。Qt是一个跨平台的C++库,提供了丰富的GUI...

    dwr实现2级级联菜单(sql2000 数据库)

    本篇文章将深入探讨如何利用DWR来实现一个两级级联菜单,并以SQL Server 2000数据库作为数据源。 首先,我们需要理解DWR的基本工作原理。DWR允许在后台执行Java方法并返回结果到前端,无需刷新整个页面。这种技术...

    2019城市编码表,级联sql

    “级联sql”可能指的是SQL脚本中包含了级联操作,如级联删除或级联更新。当一个城市编码被修改或删除时,可能会影响到关联的其他表,例如省市区县的关系表,级联操作会确保这些关联数据的一致性。 标签“城市编码”...

    省市区sql文件 单表 支持级联查询

    省市区sql文件 单表

    存储过程-游标-级联删除

    在数据库管理中,级联删除是一种常见的操作,它涉及到一个表中的记录被删除时,与之关联的其他表中的记录也会自动被删除。在大型数据库系统中,这种功能通常通过外键约束来实现,但在某些情况下,如需要自定义删除...

Global site tag (gtag.js) - Google Analytics