张工的SQL Server经验心得

主要分享一些个人的SQL Server编程开发优化经验心得。个人公众号【SQL数据库编程】(微信号:zhang502219048)

博客园 首页 新随笔 联系 订阅 管理

问题:
有时已有项目要移植,例如原来在广州地区使用的某系统,突然说惠州那边也要用这套一样的系统。或者,在demo环境下弄了一些测试数据。然后要清空全部表数据。
如果表比较多的话,逐个表手工编写脚本就太麻烦了。

解决方案:
本博主就教教大家怎么仅用一个简单语句快速删除全库各表数据,全部清空数据。
使用系统存储过程sp_MSforeachtable结合truncate table语句。达到快速删除数据库各表全部数据的目的。

脚本(如果没有外键)

/*
    说明:本脚本用于清空数据库各表数据,请谨慎使用,请提前备份好数据库,如因本脚本执行而造成的删库跑路问题,责任一概与本博主无关
    脚本来源:https://www.cnblogs.com/zhang502219048/p/11067023.html
*/
exec sp_MSforeachtable 'truncate table ?'

脚本(如果有外键):

/*
    说明:本脚本用于清空数据库各表数据,请谨慎使用,请提前备份好数据库,如因本脚本执行而造成的删库跑路问题,责任一概与本博主无关
    脚本来源:https://www.cnblogs.com/zhang502219048/p/11067023.html
*/

--禁用外键
exec sp_MSforeachtable 'alter table ? nocheck constraint all'
--清空各表数据
exec sp_MSforeachtable 'truncate table ?'
--启用外键
exec sp_MSforeachtable 'alter table ? check constraint all'

【转载请注明博文来源:https://www.cnblogs.com/zhang502219048/p/11067023.html

posted on 2019-06-21 22:09  张工502219048  阅读(1884)  评论(0编辑  收藏  举报