如下解决了五个问题
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 约束引用 解决办法相关推荐

  1. 无法截断表 ‘tbl_******** ‘,因为该表正由 FOREIGN KEY 约束引用

    出现这种错误一般是在执行以下命令: truncate table tbl_*** 其实可以换个sql实现这个功能: delete * from tbl_**** 如果表中存在自增主键,希望清除数据后自 ...

  2. 新闻发布系统——INSERT 语句与 FOREIGN KEY 约束XXX冲突。该冲突发生于数据库XXX,表XXX, column 'XXX。

    敲"添加新闻"功能模块的时候,如下: 填写了相应的信息后报错:INSERT 语句与 FOREIGN KEY 约束"XXX"冲突.该冲突发生于数据库"X ...

  3. 【数据库】ALTER TABLE 语句与 FOREIGN KEY 约束““冲突。该冲突发生于数据库““,表““, column ‘‘。

    摘要:微信搜索[三桥君] 本篇讲述的是在已经创建好表且有数据的情况下,增加 FOREIGN KEY 约束的报错问题 一.问题 当我在一张Student表中增加它的classNo外键,外键参照Class ...

  4. mysql 联查字段名重复_查询数据库多个字段名时的结果有重复的解决办法_MySQL

    bitsCN.com 查询数据库多个字段名时的结果有重复的解决办法 查询数据库的结果有重复,怎么办? 在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关 ...

  5. 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 ...

  6. 错误 -source 1.6 中不支持 diamond 运算符的解决办法(已解决)

    错误: -source 1.6 中不支持 diamond 运算符的解决办法 第一步:打开setting-> Build.Execution.Deployment 第二步:打开项目结构 开项目结构

  7. ora-01652:无法通过128(在表空间space中)扩展temp段解决办法

    ora-01652:无法通过128(在表空间space中)扩展temp段解决办法.这种情况一看是当前用户所在的表空间达到32G大小上限,需要增加一个新的表空间 一.查询当前用户表空间 select u ...

  8. mysql清空数据库下所有的表

    一.使用以下命名获取truancate  数据库 lz_garden 下所有表,并将其导入到 d盘 为 out.sql select Concat('TRUNCATE TABLE ', TABLE_N ...

  9. mysql数据库插入数据显示Extracted SQL state class '22' from value '22001'解决办法

    Extracted SQL state class '22' from value '22001' 问题描述 最近在完成一个项目时,需要实现在网页从excel导入数据,然后保存到数据库中.在测试阶段时 ...

最新文章

  1. 查看LoadRunner脚本请求日志和服务器返回值方法
  2. Common Lisp语言快速入门
  3. python中对多态和多态性的理解
  4. 【重磅】神策分析 1.13 版本上线 ,持续深耕打造场景化数据分析
  5. 中班音乐活动 机器人_【教育生活】音乐浸润童心,专业引领成长 ——记柯桥区中心幼儿园教育集团音乐项目组教学展示与研讨活动...
  6. java 线程什么时候结束_java线程什么时候让出cpu?
  7. Android----使用代码 建立gprs 闹钟 连接
  8. 2022-03-21 转载办公室之常用职位(英汉)
  9. mysql 误删表怎么恢复_怎么恢复navicat删除的表
  10. vue 中的const {XXX } =this 的作用效果
  11. 扩展RBAC用户角色权限设计方案(转载)
  12. 180/360度舵机控制方法
  13. Microsoft Edge浏览器插件(1)
  14. 通用Redis查询工具类,结合函数编程和设计模式
  15. 海淀服务器维修,服务器维修服务器维修防御升级、数据恢复、对接出错等维修服务...
  16. 【Javascript】函数中的arguments
  17. 微信小程序授权获取手机号
  18. 使用Taro小程序框架开发一个学习、刷题、论坛、聊天交流的微信小程序
  19. 在 Python 中通过知识图谱进行语义搜索(spaCy 教程含源码)
  20. 如何在桌面截取gif动态图

热门文章

  1. postgresql 备份恢复(一)
  2. s5p4418 Android 4.4.2 驱动层 HAL层 服务层 应用层 开发流程记录(二 硬件抽象层HAL)
  3. httppost数据上传 unity_Unity中国增强版发布
  4. PolarDB-X 2.0 全局 Binlog 和备份恢复能力解读
  5. 产品更新教程-钉钉宜搭版本:手写签名和定位组件来了
  6. 什么是医疗物联网(IoMT)?
  7. 那些年,我在游戏开发中改过的bug:靠不住的OS和SDK
  8. 零基础学Python-爬虫-3、利用CSS选择器爬取整篇网络小说
  9. Oracle用户创建及设置
  10. Win10安装后必做的优化,解决磁盘100%占用