SQL Server 如何清空数据库所有表数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Server 如何清空数据库所有表数据相关的知识,希望对你有一定的参考价值。

1、清空SQL Server数据库中所有表数据

(1)编写存储过程脚本:

CREATE PROCEDURE sp_DeleteAllData
AS
EXEC sp_MSForEachTable ‘ALTER TABLE ? NOCHECK CONSTRAINT ALL‘
EXEC sp_MSForEachTable ‘ALTER TABLE ? DISABLE TRIGGER ALL‘
EXEC sp_MSForEachTable ‘DELETE FROM ?‘
EXEC sp_MSForEachTable ‘ALTER TABLE ? CHECK CONSTRAINT ALL‘
EXEC sp_MSForEachTable ‘ALTER TABLE ? ENABLE TRIGGER ALL‘
EXEC sp_MSFOREACHTABLE ‘SELECT * FROM ?‘
GO

说明:

存储过程sp_MSForEachTable :循环检查所有的表(微软官方文档)。

脚本创建了一个命名为sp_DeleteAllData的存储过程,前面两行语句分别禁用约束和触发器,第三条语句才是真正地删除所有数据,接下里的语句分别还原约束和触发器,最后一条语句是显示每个表中的记录,确认是否清空了所有的表数据。

(2)查询出数据库所有表,使用truncate语句逐个删除表数据:

首先使用select语句查询出数据库中所有表名

SELECT name FROM SysObjects Where XType=‘U‘ ORDER BY Name

查询到默认当前数据库下面的所有表名,如果需要查询其它数据库下的表,加上Where 条件 name = [dbname]

然后使用truncate或delete语句逐个删除表数据

truncate table order_buyer;

truncate table order_seller;

truncate table receivelist;

...















本文出自 “sharemi” 博客,请务必保留此出处http://sharemi.blog.51cto.com/11703359/1790643

以上是关于SQL Server 如何清空数据库所有表数据的主要内容,如果未能解决你的问题,请参考以下文章

SQL SERVER 怎样清空表的数据

SQL SERVER数据库日志清空图文教程

sqlserver2005,如何将一个数据库中的所有表的数据清空,而约束不删?跪求答案

怎样清空SQL SERVER数据库,清空后让表的ID自增列从1开始??

如何在不删除sql server表中数据的情况下,让自增的id列从1开始

如何在不删除sql server表中数据的情况下,让自增的id列从1开始