`
岁月如歌
  • 浏览: 107068 次
  • 性别: 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数据库设计中,级联操作(如级联删除和级联更新)是一种重要的关系维护机制,它确保了数据的一致性和完整性。级联操作主要应用于具有外键约束的表之间,当对主键表进行操作时,相关联的外键表会自动按照预设...

    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