美文网首页
Sql sever 清空数据库所有数据

Sql sever 清空数据库所有数据

作者: zxws1009 | 来源:发表于2020-08-25 16:12 被阅读0次

1、清空SQL Server数据库中所有表数据
编写存储过程脚本:

CREATE PROCEDURE sp_DeleteAllData
AS
EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
EXEC sp_MSForEachTable 'TRUNCATE 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、 执行存储过程

USE [db_Name]
GO

DECLARE @return_value int
EXEC    @return_value = [dbo].[sp_DeleteAllData]
SELECT  'Return Value' = @return_value
GO

3、检查是否全部清空

select distinct object_name(id) from sys.sysindexes where rows>0

发现有未清楚干净的,可手动清除一下
手动清除使用TRUNCATE TABLE 替代 DELETE

4、数据库清理日志
Sql Server2014数据库日志占用特别大,清理方法。直接贴代码

    USE[master]
    GO
    ALTER DATABASE db_Name SET RECOVERY SIMPLE WITH NO_WAIT
    GO
    ALTER DATABASE db_Name SET RECOVERY SIMPLE   --简单模式
    GO
    USE db_Name 
    GO
    DBCC SHRINKFILE (N'db_Name_log' , 11, TRUNCATEONLY)
    GO
    USE[master]
    GO
    ALTER DATABASE db_Name SET RECOVERY FULL WITH NO_WAIT
    GO
    ALTER DATABASE db_Name SET RECOVERY FULL  --还原为完全模式
    GO

这个时候的数据库就非常干净了!

当然有更好的方案,欢迎交流~~

结束!

相关文章

  • Sql sever 清空数据库所有数据

    1、清空SQL Server数据库中所有表数据编写存储过程脚本: 说明: 存储过程sp_MSForEachTabl...

  • 安装sqlsever出问题,求大神解?

    sql sever2005,安装时出错,sql sever服务不能启动,点取消后继续安装就只有这么点东西了,数据库...

  • Python 数据库查询及数据导入

    #查询数据库数据 #Python 连接sql sever 并进行数据查询 import pymmsql conn...

  • SQL sever小总结

    体验一下MySQL与SQL sever的不同吧! 这是我总结的一些SQL sever的一些基本语句 数据库操作: ...

  • Python DataFrame 导入至 Microsoft S

    本文将介绍如何把DataFrame中的数据写入到Microsoft SQL Sever数据库。 而 Pandas ...

  • 利用Python操作MySQL数据库

    前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle、MySQL、SQL Sever 等,今天我们就学...

  • SQL Sever数据库脚本

    数据库脚本代码 创建数据量 create database dbtast--数据库名称 on primary ( ...

  • Redis 基础命令

    Redis学习 0.基础操作 清空当前数据库所有key&value 清空所有数据库所有key&value 返回当前...

  • Neo4j清空数据库

    Neo4j清空数据库 1 清空数据,保留数据库 删除所有节点和关系 删除一个节点及其所有关系: 2 清除数据库 参...

  • pandas连接mysql

    首先,温习一个清空数据库表内容的命令 下面进入正题:(1)导入包 (2)sql语句及数据库连接 (3)在数据库连接...

网友评论

      本文标题:Sql sever 清空数据库所有数据

      本文链接:https://www.haomeiwen.com/subject/oedzjktx.html