清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
来源:互联网 发布:ocr图像识别软件 编辑:程序博客网 时间:2024/05/03 06:24
如下解决了五个问题
1. 清空数据
2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表
3. 种子问题, 如果表存在种子重设为0, 如不存在就不操作
4. 加了事务, 中间报错, 有后悔机会
1. 清空数据
2. 有外键也可以, 因为是逆向删除, 从最后一张表删除. 且使用的是delete, 因为truncate不能对有外键的表
3. 种子问题, 如果表存在种子重设为0, 如不存在就不操作
4. 加了事务, 中间报错, 有后悔机会
5. 截断日志功能, 因为使用delete, 删除后日志文件会增大, 可以不使用
if( object_id('pr_DataClear') is not null ) drop procedure pr_DataCleargocreate procedure pr_DataClearasbegin 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_Clearcommitgo-- 清空所有表数据exec pr_DataClear-- 截断日志backup log LZ的数据库 with no_logdbcc 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 ' --清空数据 truncate table 表名 --启用外键约束 exec sp_msforeachtable 'alter table ? check constraint all '
是行不通的,因为truncate不能对有外键的表 ,改为delete from tablename就行,但delete会激活触发器,这也是一个问题。
http://blog.csdn.net/wqvbjhc/article/details/5351562
- 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
- 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
- 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
- SQL错误:无法删除对象 '****',因为该对象正由一个 FOREIGN KEY 约束引用。
- SQL错误:无法删除对象 '****',因为该对象正由一个 FOREIGN KEY 约束引用。
- 无法截断表 'item',因为该表正由 FOREIGN KEY 约束引用。
- 无法删除对象 '产品',因为该对象正由一个 FOREIGN KEY 约束引用
- 无法删除对象 'Student',因为该对象正由一个 FOREIGN KEY 约束引用。
- ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 '' 冲突。该冲突发生于数据库 '',表 '', column ''。
- ALTER TABLE 语句与 COLUMN FOREIGN KEY 约束 '' 冲突。该冲突发生于数据库 '',表 '', column ''。
- INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX。
- INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX。
- INSERT 语句与 FOREIGN KEY SAME TABLE 约束"FK__Course__Cpno__1367E606"冲突。该冲突发生于数据库"student",表"dbo.Course",
- INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX。
- INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX。
- 数据库基本表创建 完整性约束 foreign Key
- mysql Error : Cannot truncate a table referenced in a foreign key constraint 清空具有外键约束的表时报
- 数据库六大约束用法:主键(primary key)、外键(foreign key)、非空(not null)、默认(default)、检查(check)、唯一(unique)
- 深入MySQL数据库的索引
- Freescale iMX53平台UBoot中启动参数说明(三)
- mysql中fetch_array, fetch_accoc, fetch_row,fetch_object的区别
- hdu-发工资喽
- Linux中安装使用Oracle 11g客户端步骤
- 清空数据库错误:因为该表正由 FOREIGN KEY 约束引用 解决办法
- ioctl 变成了 unlocked_ioctl[转]
- mysql: ZIP下载、安装、启动、使用、卸载
- cas单点登录环境搭建
- block 单例
- hdu-海选女主角
- 利用ConstantState判断两张图片是否为drawable中同一张图片
- 使用PopupWindow实现全局自定义menu
- JDBC 数据库连接池