首页 > 数据库 >SQL Server 清除一个数据库下所有表数据,保留表结构

SQL Server 清除一个数据库下所有表数据,保留表结构

时间:2024-01-19 17:33:06浏览次数:32  
标签:tableCursor 数据库 TableName Server SqlQuery SQL TABLE

用法:在需要清空数据的数据库创建并执行存储过程,该存储过程并不会影响其他数据库

❗请小心使用这些脚本,确保在生产环境之前备份您的数据库。⚠️

存储过程:

CREATE PROCEDURE ClearAllTables
AS
BEGIN
    DECLARE @TableName NVARCHAR(255)

    DECLARE tableCursor CURSOR FOR
    SELECT TABLE_NAME
    FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_TYPE = 'BASE TABLE'

    OPEN tableCursor
    FETCH NEXT FROM tableCursor INTO @TableName

    WHILE @@FETCH_STATUS = 0
    BEGIN
        DECLARE @SqlQuery NVARCHAR(MAX)

        -- Build the dynamic SQL query to truncate the current table
        SET @SqlQuery = 'TRUNCATE TABLE ' + QUOTENAME(@TableName)

        -- Execute the dynamic SQL query
        EXEC sp_executesql @SqlQuery

        FETCH NEXT FROM tableCursor INTO @TableName
    END

    CLOSE tableCursor
    DEALLOCATE tableCursor
END

执行

EXEC ClearAllTables

免责声明:仅技术技术分享,谨慎操作,数据无价

标签:tableCursor,数据库,TableName,Server,SqlQuery,SQL,TABLE
From: https://www.cnblogs.com/HookDing/p/17975208

相关文章

  • Spark SQL的运行原理
    DataFrame、DataSet和SparkSQL的实际执行流程都是相同的:1.进行DataFrame/Dataset/SQL编程;2.如果是有效的代码,即代码没有编译错误,Spark会将其转换为一个逻辑计划;3.Spark将此逻辑计划转换为物理计划,同时进行代码优化;4.Spark然后在集群上执行这个物理计划(基于RDD操作)......
  • 八股文之SQL语句
    1,DDL--数据定义语言:用于改变数据库结构,包括创建、修改、删除数据库对象。用于操纵表结构的数据定义语言命令有:CREATETABLE--创建ALTERTABLE--更改DROPTABLE--删除2,DML--数据操纵语言:数据操纵语言用于检索、插入和修改数据,数据操纵语言是最常见的SQL命令。INSERT-......
  • HHDESK端口转发监控服务获取客户端和数据库之间的交互信息
    1.用户痛点端口转发是一种网络技术,用于将外部网络请求转发到内部网络中的特定设备或服务。它允许通过公共网络访问内部网络中的资源,提供了灵活性和便利性。传统的端口转发方式是通过配置路由器的端口映射,但这需要具备网络知识和一定的技术操作,对于一般用户来说较为繁琐。而HHDESK......
  • SpringBoot+dynamic-datasource实现多数据源(msyql、sqlserver、postgresql)手动切换
    场景SpringBoot+MybatisPlus+dynamic-datasources实现连接Postgresql和mysql多数据源:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/135653227上面实现通过注解和配置文件的方式去进行多数据源操作。如果业务需求,比如查询第三方接口时提供的是sqlserver的视图连......
  • mysql常用查询日期语句
    --最近30天 selectdate_add(curdate(),interval(cast(help_topic_idassignedinteger)-30)day)dayfrommysql.help_topicwherehelp_topic_id <=day(last_day(curdate()))orderbyhelp_topic_id--最近7天 selectdate_add(curdate(),interval(cast(help_to......
  • elasticsearch学习笔记2 - logstash jdbc 同步MYSQL到ES
    logstash是一个管道工具input输入output输出filter过滤条件咋们初级先了解到这些再说比较优秀的教程文档作为基础知识需要了解:https://blog.csdn.net/qq_19283249/article/details/130839158?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170564710516800215......
  • 001 SQL Serverでレコード件数を調べる方法
    1,count関数件数が膨大なテーブルに対して実行した場合、結果が返ってくるまでに時間がかかります。SELECTcount(*)as[行数]FROM[テーブル名]2,sp_spaceusedシステムストアドプロシージャのsp_spaceusedを使ってレコード数を取得できます。EXECsp_spaceused[テーブ......
  • dotnet 8项目Docker部署报错 Unhandled exception. Microsoft.Data.SqlClient.SqlExce
    环境:dotnet8+sqlserver2012本地开发调试正常,部署至Docker容器时,运行实例报错。查看日志显示:Unhandledexception.Microsoft.Data.SqlClient.SqlException(0x80131904):Aconnectionwassuccessfullyestablishedwiththeserver,butthenanerroroccurredduringth......
  • C++ Qt开发:Charts与数据库组件联动
    Qt是一个跨平台C++图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍Charts组件与QSql数据库组件的常用方法及灵活运用。在之前的文章中详细介绍了关于QCharts绘图组件......
  • PostgreSQL从入门到精通教程 - 第42讲:pg_rman部署与使用
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第42讲:pg_rman部署与使用 PostgreSQL第42讲:1月20日......