SQL删除数据库里所有表的外键,同时删除所有用户表
SQL删除数据库里所有表的外键,同时删除所有用户表
删除所有的用户表的外键,直接将下面的代码拷贝到数据库里执行即可:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
--查询删除前的当前数据库所有约束 select * from information_schema.key_column_usage declare @TableName nvarchar(250) --声明读取数据库所有数据表名称游标mycursor1 declare mycursor1 cursor for select name from dbo.SysObjects WHERE OBJECTPROPERTY(ID, 'IsUserTable' ) = 1 --打开游标 open mycursor1 --从游标里取出数据赋值到我们刚才声明的数据表名变量中 fetch next from mycursor1 into @TableName --如果游标执行成功 while (@@fetch_status=0) begin --定义当前外键约束变量 declare @ConstraintName varchar (200) --删除当前数据表的所有外键约束 --声明读取数据表所有外键约束名称游标mycursor2 declare mycursor2 cursor for select name from dbo.sysobjects where Xtype = 'F' and Parent_Obj = ( select [ID] from dbo.sysobjects where id = object_id(N '[' +@TableName+ ']' ) and OBJECTPROPERTY(id, N 'IsUserTable' ) = 1) --打开游标 open mycursor2 --从游标里取出数据赋值到外键约束名称变量中 fetch next from mycursor2 into @ConstraintName --如果游标执行成功 while (@@fetch_status=0) begin --删除当前找到的外键 exec ( 'ALTER TABLE ' +@TableName+ ' DROP CONSTRAINT ' +@ConstraintName) --print 'ALTER TABLE ' +@TableName+ ' DROP CONSTRAINT ' +@ConstraintName --用游标去取下一条记录 fetch next from mycursor2 into @ConstraintName end --关闭游标 close mycursor2 --撤销游标 deallocate mycursor2 --用游标去取下一条记录 fetch next from mycursor1 into @TableName end --关闭游标 close mycursor1 --撤销游标 deallocate mycursor1 --查询删除后的当前数据库所有约束 select * from information_schema.key_column_usage |
删除所有的数据表,也是直接执行下面的代码:
1
2
3
4
5
6
7
8
|
declare @sql varchar(8000) SELECT @sql= 'drop table ' + name FROM sysobjects WHERE (type = 'U' ) ORDER BY 'drop table ' + name exec(@sql) |
SQL删除数据库里所有表的外键,同时删除所有用户表的更多相关文章
- EF实体框架-从数据库更新模型 一部分表的外键(导航属性)无法显示
从数据库更新模型 要想让数据库表之间的外键关系 显示到实体模型的导航属性中去. 表的外键 对应另一张表的字段要是主键,唯一键显示不出来
- mysql如何添加一个表的外键
1:创建一个父表,主键作为子表的外键: create table province( pId int primary key auto_increment, pName varchar() ); 2: ...
- mysql 查询指定数据库所有表, 指定表所有列, 指定列所有表 所有外键及索引, 以及索引的创建和删除
查询指定 数据库 中所有 表 (指定数据库的,所有表) // 可以把 TABLE_NAME 换成 * 号, 查看更丰富的信息 SELECT TABLE_NAME FROM information_sc ...
- SQL学习:主键,外键,主键表,外键表,数据库的表与表之间的关系;
在数据库的学习中,对于一个表的主键和外键的认识是非常重要的. 主键:在一个表中,能唯一的表示一个事物(或者一条记录)的字段,我们称之为主键 注意: 主键的设置可以不只是用一个字段,也可以用若干个字段的 ...
- 【SQL Server DBA】维护语句:删除并创建外键约束、获取建表语句
原文:[SQL Server DBA]维护语句:删除并创建外键约束.获取建表语句 1.删除外键约束,建立外键约束 先建立3个表: /* drop table tb drop table tb_b dr ...
- MySQL删除所有表的外键约束、禁用外键约束
转: MySQL删除所有表的外键约束.禁用外键约束 2017年10月27日 00:11:34 李阿飞 阅读数:4512 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...
- (转载)MySQL删除所有表的外键约束、禁用外键约束
其实如果想删除所有表可以直接如下操作: 在navicat中直接选中所有表,然后右键删除表即可,会有提示,一路确定,就会先删掉没有外键的表和字表,只要一路确定,删几批就把表都删完了,并不算太麻烦. 转: ...
- MySQL数据库(3)- 完整性约束、外键的变种、单表查询
一.完整性约束 在创建表时候,约束条件和数据类型的宽度都是可选参数. 作用:用于保证数据的完整性和一致性. 1.not null(不可空)与default 示例一:插入一个空值,如下: mysql&g ...
- MYSQL - 外键、约束、多表查询、子查询、视图、事务
MYSQL - 外键.约束.多表查询.子查询.视图.事务 关系 创建成绩表scores,结构如下 id 学生 科目 成绩 思考:学生列应该存什么信息呢? 答:学生列的数据不是在这里新建的,而应该从学生 ...
随机推荐
- linux入门教程(五) Linux系统的远程登录
首先要说一下,该部分内容对于linux初学者来讲并不是特别重要的,可以先跳过该章节,先学下一章,等学完后再回来看这一章. Linux大多应用于服务器,而服务器不可能像PC一样放在办公室,它们是放在ID ...
- 网络上下载的Ghost系统含威胁
- Project Euler 77:Prime summations
原题: Prime summations It is possible to write ten as the sum of primes in exactly five different ways ...
- Orcle数据库查询练习复习:三
一.题目 1.与“张三”同乡的男生姓名 select * from student where snativeplace=(select snativeplace from student where ...
- 创业草堂之六:CEO的财务自修课
创业团队中一个最普遍的缺陷,是团队--尤其是团队的核心人物CEO,缺乏基本的财务知识和技能.一个不懂财务知识的CEO,即使业务能力再强,在投资人的眼里,他/她依然是一个笨拙的CEO.粗糙的CEO.鲁莽 ...
- .md文件 Markdown 语法说明
Markdown 语法说明 (简体中文版) / (点击查看快速入门) 概述 宗旨 兼容 HTML 特殊字符自动转换 区块元素 段落和换行 标题 区块引用 列表 代码区块 分隔线 区段元素 链接 强调 ...
- 90. Subsets II
题目: Given a collection of integers that might contain duplicates, nums, return all possible subsets. ...
- HDU 4604 deque 最长上升子序列
枚举每个位置,求以num[i]为起点的最长不下降子序列和以num[i]为结尾的最长不递增子序列. 并且把相同值的个数统计一下,最后要减去算重复了的. 比如: 1 9 4 4 2 2 2 3 3 3 7 ...
- 语言基础:C#输入输出与数据类型及其转换
今天学习了C#的定义及特点,Visual Studio.Net的集成开发环境和C#语言基础. C#语言基础资料——输入输出与数据类型及其转换 函数的四要素:名称,输入,输出,加工 输出 Console ...
- C# 计时器的三种使用方法
在.net中有三种计时器,一是System.Windows.Forms命名空间下的Timer控件,它直接继承自Componet;二是System.Timers命名空间下的Timer类. Timer控件 ...