这里是我用于类似目的的脚本。它不支持复合外键(它使用多个字段。)它可能需要一些调整,它将适合您的情况。编辑:特别是它不能正确处理多列外键。

select

DropStmt = 'ALTER TABLE [' + ForeignKeys.ForeignTableSchema +

'].[' + ForeignKeys.ForeignTableName +

'] DROP CONSTRAINT [' + ForeignKeys.ForeignKeyName + ']; '

, CreateStmt = 'ALTER TABLE [' + ForeignKeys.ForeignTableSchema +

'].[' + ForeignKeys.ForeignTableName +

'] WITH CHECK ADD CONSTRAINT [' + ForeignKeys.ForeignKeyName +

'] FOREIGN KEY([' + ForeignKeys.ForeignTableColumn +

']) REFERENCES [' + schema_name(sys.objects.schema_id) + '].[' +

sys.objects.[name] + ']([' +

sys.columns.[name] + ']) ON DELETE CASCADE; '

from sys.objects

inner join sys.columns

on (sys.columns.[object_id] = sys.objects.[object_id])

inner join (

select sys.foreign_keys.[name] as ForeignKeyName

,schema_name(sys.objects.schema_id) as ForeignTableSchema

,sys.objects.[name] as ForeignTableName

,sys.columns.[name] as ForeignTableColumn

,sys.foreign_keys.referenced_object_id as referenced_object_id

,sys.foreign_key_columns.referenced_column_id as referenced_column_id

from sys.foreign_keys

inner join sys.foreign_key_columns

on (sys.foreign_key_columns.constraint_object_id

= sys.foreign_keys.[object_id])

inner join sys.objects

on (sys.objects.[object_id]

= sys.foreign_keys.parent_object_id)

inner join sys.columns

on (sys.columns.[object_id]

= sys.objects.[object_id])

and (sys.columns.column_id

= sys.foreign_key_columns.parent_column_id)

) ForeignKeys

on (ForeignKeys.referenced_object_id = sys.objects.[object_id])

and (ForeignKeys.referenced_column_id = sys.columns.column_id)

where (sys.objects.[type] = 'U')

and (sys.objects.[name] not in ('sysdiagrams'))

oracle 外键更改为on delete cascade属性,SQL脚本更改所有外键以添加ON DELETE CASCADE相关推荐

  1. 在xp中不能查看或更改文件夹的“只读”属性或“系统”属性解决方法

    在xp中不能查看或更改文件夹的"只读"属性或"系统"属性解决方法 症状  您可能会遇到下列任一症状: • 不能使用文件夹的"属性"对话框查看 ...

  2. sql server 外键_什么是SQL Server中的外键

    sql server 外键 In this article, we will seek an answer to an important question – "What is a for ...

  3. 如何在SQL Server中索引外键列

    Before going through the main concern of this article, indexing the foreign key columns, let's take ...

  4. mysql建表时外检怎么创建_MySQL创建表时加入的约束以及外键约束的的意义

    1,创建表时加入的约束 a) 非空约束,not null b) 唯一约束,unique c) 主键约束,primary key d) 外键约束,foreign key 1,非空约束,针对某个字段设置其 ...

  5. mysql多个外键删除设置_Mysql在删除集上使用多个外键创建表

    我试图创建一个具有删除/更新约束的多个外键的数据库,但我得到一个错误代码1005与以下sql脚本: CREATE TABLE Worker ( WorkerID smallint auto_incre ...

  6. SQL 语句:不得使用外键与级联,一切外键概念必须在应用层解决

    阿里Java规范 [强制]不得使用外键与级联,一切外键概念必须在应用层解决. 说明:以学生和成绩的关系为例,学生表中的 student_id是主键,那么成绩表中的 student_id则为外键.如果更 ...

  7. Oracle 删除表空间错误 提示:ora-02429:无法删除用于强制唯一/主键的索引

    sql>droptablespace xxx ora-01549:表空间非空,请使用INCLUDING CONTENTS 选项 sql>droptablespace xxx INCLUDI ...

  8. oracle 哦【的【,清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦

    清晰讲解SQL语句中的外连接,通用于Mysql和Oracle,全是干货哦 直入主题: 我们做一个操作,将员工SCOTT的部门去掉,再次通过内连接查看数据,看看会产生什么现象? 使用内连接,查询数据 问 ...

  9. 使用SQL脚本创建数据库,操作主键、外键与各种约束(MS SQL Server)

    在实际开发中,可能很少人会手写sql脚本来操作数据库的种种.特别是微软的MS SQL Server数据库,它的SQL Server Management Studio对数据库的图形化操作极致简便,从而 ...

最新文章

  1. View_01_LayoutInflater的原理、使用方法
  2. java.util.concurrent包详细分析--转
  3. [翻译:更新]Understanding Linux Network Internals - Table of Contents
  4. JAVA进阶day04多态(向上转化,向下转化)
  5. 计算机控制系统脉冲传递函数,第6.2课 (理解)计算机控制系统理论基础—脉冲传递函数.pdf...
  6. 十五、导航,头部,CSS基础
  7. Lifewire文档阅读笔记-如何使用IP地址找对应的MAC地址
  8. c#devexpres窗体划分 以及panelcontrol 相关操作
  9. Java多线程学习十六:读写锁 ReadWriteLock 获取锁有哪些规则
  10. 问题 D: Search Problem
  11. 微信说不!有何不可?
  12. 845透色android10,骁龙845旗舰宝刀不老 升级安卓10焕然一新
  13. flashlite3无法接入网络的解决办法
  14. USB1.1学习笔记
  15. AWVS批量操作脚本
  16. 5、♥☆基于STM32的智能手环√★☆
  17. 2d游戏地图制作html5,如何通过 Cocos2d-html5 使用砖块地图编辑器
  18. Android 图形架构之一 ——概述
  19. 常见的噪声:高斯、泊松和椒盐噪声
  20. SeleniumWebDriver运行数据库测试?

热门文章

  1. java怎么找出数组最小值,Java找出数组的最小值元素
  2. 翻译文件名称,如何操作将中文名称翻译成英文名称
  3. 3D全景展示技术有多厉害,你看了就知道!
  4. auto.js 2019 支付宝1212活动脚本 v2
  5. 记事本软件哪个强?这些功能你不能错过
  6. 用CAD看图软件修改文字样式的好方法
  7. 【游戏设计】游戏设计师修炼秘籍 读书笔记三(说说IOS游戏水果忍者和捕鱼达人的事情)
  8. MySQL中SQL生命周期与执行流程
  9. 【Vue 学习】- VueJS 生命周期
  10. 聊一聊fastjson