清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
如下解决了五个问题
1. 清空数据
2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表
3. 种子问题, 如果表存在种子重设为0, 如不存在就不操作
4. 加了事务, 中间报错, 有后悔机会
5. 截断日志功能, 因为使用delete, 删除后日志文件会增大, 可以不使用
if( object_id('pr_DataClear') is not null ) drop procedure pr_DataClear go create procedure pr_DataClear as begin transaction declare @cTblName varchar(128) declare cur_Clear cursor for select rtrim(name) from sysobjects where type = 'U' order by crdate desc open cur_Clear declare @cSQL varchar(255) fetch next from cur_Clear into @cTblName while( @@fetch_status = 0) begin set @cSQL = 'delete from ' + @cTblName print @cSQL exec( @cSQL ) if( ident_seed(@cTblName) is not null ) begin dbcc checkident( @cTblName, reseed, 0 ) print '有种子且成功重置为1' end fetch next from cur_Clear into @cTblName end close cur_Clear deallocate cur_Clear commit go -- 清空所有表数据 exec pr_DataClear -- 截断日志 backup log LZ的数据库 with no_log dbcc shrinkdatabase( LZ的数据库 ) dbcc updateusage( LZ的数据库 ) -- 查看表空间(概数) select object_name(id) as 表名, (rtrim(8*reserved/1024) + 'MB') as 总量, (rtrim(8*dpages/1024) + 'MB') as 已使用, (rtrim(8*(reserved-dpages)/1024) + 'MB') as 未使用, (rtrim(8*dpages/1024-rows/1024*minlen/1024) + 'MB' ) as 空隙 from sysindexes where indid=1 order by reserved desc
原文出处:http://topic.csdn.net/u/20090816/17/EE0FA21E-8616-4236-A9CB-8C5A3D45C9D9.html 中45楼
对于有外键约束的表,网上普遍说的方法:
EXEC sp_MSForEachTable ' ALTER TABLE ? NOCHECK CONSTRAINT ALL ' -- NOCHECK Const
EXEC sp_MSForEachTable ' truncate TABLE ? '
EXEC sp_MSForEachTable ' ALTER TABLE ? CHECK CONSTRAINT ALL ' -- NOCHECK Constraints 是行不通的,因为 trun cate不能对有外键的表 ,改为delete from tablename就行,但delete会激活触发器,这也是一个问题。
转载于:https://www.cnblogs.com/wqvbjhc/archive/2010/03/06/2465156.html
清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法相关推荐
- 无法截断表 ‘tbl_******** ‘,因为该表正由 FOREIGN KEY 约束引用
出现这种错误一般是在执行以下命令: truncate table tbl_*** 其实可以换个sql实现这个功能: delete * from tbl_**** 如果表中存在自增主键,希望清除数据后自 ...
- 新闻发布系统——INSERT 语句与 FOREIGN KEY 约束XXX冲突。该冲突发生于数据库XXX,表XXX, column 'XXX。
敲"添加新闻"功能模块的时候,如下: 填写了相应的信息后报错:INSERT 语句与 FOREIGN KEY 约束"XXX"冲突.该冲突发生于数据库"X ...
- 【数据库】ALTER TABLE 语句与 FOREIGN KEY 约束““冲突。该冲突发生于数据库““,表““, column ‘‘。
摘要:微信搜索[三桥君] 本篇讲述的是在已经创建好表且有数据的情况下,增加 FOREIGN KEY 约束的报错问题 一.问题 当我在一张Student表中增加它的classNo外键,外键参照Class ...
- mysql 联查字段名重复_查询数据库多个字段名时的结果有重复的解决办法_MySQL
bitsCN.com 查询数据库多个字段名时的结果有重复的解决办法 查询数据库的结果有重复,怎么办? 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关 ...
- linux下生成guid,在Linux下生成GUID的程序,及编译错误 “uuid/uuid.h: No such file or directory” 的解决办法。...
在Linux下编写生成GUID的程序,如下 guid.c 文件: #include #include void uuid2string(const uuid_t uu, char* const str ...
- 错误 -source 1.6 中不支持 diamond 运算符的解决办法(已解决)
错误: -source 1.6 中不支持 diamond 运算符的解决办法 第一步:打开setting-> Build.Execution.Deployment 第二步:打开项目结构 开项目结构
- ora-01652:无法通过128(在表空间space中)扩展temp段解决办法
ora-01652:无法通过128(在表空间space中)扩展temp段解决办法.这种情况一看是当前用户所在的表空间达到32G大小上限,需要增加一个新的表空间 一.查询当前用户表空间 select u ...
- mysql清空数据库下所有的表
一.使用以下命名获取truancate 数据库 lz_garden 下所有表,并将其导入到 d盘 为 out.sql select Concat('TRUNCATE TABLE ', TABLE_N ...
- mysql数据库插入数据显示Extracted SQL state class '22' from value '22001'解决办法
Extracted SQL state class '22' from value '22001' 问题描述 最近在完成一个项目时,需要实现在网页从excel导入数据,然后保存到数据库中.在测试阶段时 ...
最新文章
- 查看LoadRunner脚本请求日志和服务器返回值方法
- Common Lisp语言快速入门
- python中对多态和多态性的理解
- 【重磅】神策分析 1.13 版本上线 ,持续深耕打造场景化数据分析
- 中班音乐活动 机器人_【教育生活】音乐浸润童心,专业引领成长 ——记柯桥区中心幼儿园教育集团音乐项目组教学展示与研讨活动...
- java 线程什么时候结束_java线程什么时候让出cpu?
- Android----使用代码 建立gprs 闹钟 连接
- 2022-03-21 转载办公室之常用职位(英汉)
- mysql 误删表怎么恢复_怎么恢复navicat删除的表
- vue 中的const {XXX } =this 的作用效果
- 扩展RBAC用户角色权限设计方案(转载)
- 180/360度舵机控制方法
- Microsoft Edge浏览器插件(1)
- 通用Redis查询工具类,结合函数编程和设计模式
- 海淀服务器维修,服务器维修服务器维修防御升级、数据恢复、对接出错等维修服务...
- 【Javascript】函数中的arguments
- 微信小程序授权获取手机号
- 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序
- 在 Python 中通过知识图谱进行语义搜索(spaCy 教程含源码)
- 如何在桌面截取gif动态图
热门文章
- postgresql 备份恢复(一)
- s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(二 硬件抽象层HAL)
- httppost数据上传 unity_Unity中国增强版发布
- PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读
- 产品更新教程-钉钉宜搭版本:手写签名和定位组件来了
- 什么是医疗物联网(IoMT)?
- 那些年,我在游戏开发中改过的bug:靠不住的OS和SDK
- 零基础学Python-爬虫-3、利用CSS选择器爬取整篇网络小说
- Oracle用户创建及设置
- Win10安装后必做的优化,解决磁盘100%占用