SQL Server中关于个性化需求批量删除表的做法
在实际开发中,我们常常会遇到需要批量删除表,且具有共同特征的情况,例如:找出表名中数字结尾的表之类的,本文我将以3中类似情况为例,来示范并解说此类需求如何完成:
第一种,批量删除表名中数字结尾的表
在 SQL Server 中,你可以使用动态 SQL 和系统视图来生成并执行删除表的语句。以下是一个示例脚本,它将遍历 JZMES 库中所有表名以数字结尾的表,并生成 DROP TABLE 语句来删除这些表。
请注意,执行这样的操作非常危险,因为它会永久删除表及其数据。务必在执行此脚本之前备份数据库,并仔细验证表名模式。
以下是一个示例脚本:
USE JZMES; -- 切换到目标数据库
GO -- 声明一个变量来存储动态 SQL 语句
DECLARE @sql NVARCHAR(MAX) = N''; -- 遍历所有表,找到表名以数字结尾的表
SELECT @sql = @sql + 'DROP TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ';' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' -- 只考虑基本表(不包括视图)
AND TABLE_NAME LIKE '%[0-9]'; -- 表名以数字结尾 -- 打印生成的 SQL 语句(可选,用于验证)
PRINT @sql; -- 执行生成的 SQL 语句(请确保在执行之前已经仔细验证)
-- EXEC sp_executesql @sql;
脚本说明:
切换到目标数据库:使用 USE JZMES; 切换到你要操作的数据库。
声明变量:使用 DECLARE @sql NVARCHAR(MAX) = N’'; 声明一个变量来存储生成的 DROP TABLE 语句。
生成动态 SQL:
使用 SELECT 语句从 INFORMATION_SCHEMA.TABLES 中选择所有基本表(不包括视图)。
筛选表名以数字结尾的表(使用 LIKE ‘%[0-9]’)。
使用 QUOTENAME 函数确保表名和模式名被正确引用,防止 SQL 注入。
将生成的 DROP TABLE 语句拼接到 @sql 变量中。
打印生成的 SQL 语句:使用 PRINT @sql; 打印生成的 DROP TABLE 语句,用于验证。
执行生成的 SQL 语句:
使用 EXEC sp_executesql @sql; 执行生成的 SQL 语句。
注意:这一步是实际删除表的步骤,非常危险。务必在执行之前仔细验证生成的 SQL 语句,确保不会误删重要数据。
第二种,批量删除所有表名中非字母结尾的表
这次你需要调整 LIKE 子句来匹配非字母结尾的表名。由于 SQL Server 的 LIKE 子句不支持直接匹配非字母字符,你可以使用字符范围 [^a-zA-Z] 来表示非字母字符。不过,请注意,LIKE 子句在 SQL Server 中是区分大小写的,但表名在内部存储时通常是不区分大小写的(这取决于数据库和服务器配置)。然而,为了匹配非字母字符,我们仍然可以使用 [^a-zA-Z]。
但是,有一个问题:LIKE ‘%[^a-zA-Z]’ 实际上会匹配任何以非字母字符结尾的字符串,包括那些以数字、特殊字符或空格结尾的字符串。如果你只想删除那些以数字或特殊字符结尾(而不是空格或其他非字母非数字字符),你可能需要更复杂的模式匹配,或者使用正则表达式(但 SQL Server 的 LIKE 子句不支持正则表达式)。
不过,对于大多数情况,下面展示的语句应该足够,下面仅展示核心内容:
SELECT @sql = @sql + 'DROP TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ';' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' -- 只考虑基本表(不包括视图)
AND TABLE_NAME LIKE '%[^a-zA-Z]'; -- 表名非字母结尾(注意:这里可能匹配到以空格或特殊字符结尾的表)
第三种,删除表名里“tmp”开头的表
经过上面俩种情况的编写,下面仅展示核心语句:
-- 遍历所有表,找到表名以 "tmp" 开头的表
SELECT @sql = @sql + 'DROP TABLE ' + QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) + ';' + CHAR(13)
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE = 'BASE TABLE' -- 只考虑基本表(不包括视图)
AND TABLE_NAME LIKE 'tmp%'; -- 表名以 "tmp" 开头
以上三种情况,从业务开发角度来说,都建议只执行到PRINT @sql;尽量增加监察环境,一昧直接执行,可能会对表结构造成不可逆的伤害,通过PRINT的检查,我们再执行PRINT中的语句会更好

相关文章:
SQL Server中关于个性化需求批量删除表的做法
在实际开发中,我们常常会遇到需要批量删除表,且具有共同特征的情况,例如:找出表名中数字结尾的表之类的,本文我将以3中类似情况为例,来示范并解说此类需求如何完成: 第一种,批量删除…...
关于按键状态机解决Delay给程序带来的问题
问题产生 我在学习中断的过程中,使用EXTI15外部中断,在其中加入HAL_Delay();就会发生报错 错误地方 其它地方配置 问题原因 在中断服务例程(ISR)中使用 HAL_Delay() 会导致问题的原因是: 阻塞性: HAL_D…...
62.【C语言】浮点数的存储
目录 1.浮点数的类型 2.浮点数表示的范围 3.浮点数的特性 《计算机科学导论》的叙述 4.浮点数在内存中的存储 答案速查 分析 前置知识:浮点数的存储规则 推导单精度浮点数5.5在内存中的存储 验证 浮点数取出的分析 1.一般情况:E不全为0或不全为1 2.特殊情况:E全为0…...
GO网络编程(一):基础知识
1. 网络编程的基础概念 TCP/IP 协议栈 TCP/IP 是互联网通信的核心协议栈,分为以下四个层次: 应用层(Application Layer):为应用程序提供网络服务的协议,比如 HTTP、FTP、SMTP 等。传输层(Tra…...
【Linux】用虚拟机配置Ubuntu环境
目录 1.虚拟机安装Ubuntu系统 2.Ubuntu系统的网络配置 3.特别声明 首先我们先要下载VMware软件,大家自己去下啊! 1.虚拟机安装Ubuntu系统 我们进去之后点击创建新的虚拟机,然后选择自定义 接着点下一步 再点下一步 进入这个界面之后&…...
酒店智能门锁SDK接口pro[V10] 门锁校验C#-SAAS本地化-未来之窗行业应用跨平台架构
一、代码 int 酒店标识_int Convert.ToInt32(酒店标识);StringBuilder 锁号2024 new StringBuilder(8);//信息 "未知返回值:" bufCard_原始;GetGuestLockNoByCardDataStr_原始(酒店标识_int, bufCard_原始.ToString(), 锁号2024);StringBuilder 退…...
Gitのrebase用法
在 Git 中,rebase 是一种用于整合多个提交历史的操作,它可以将一个分支的变更“重放”到另一个分支上。与 merge 不同,rebase 会产生一个线性的提交历史,使得项目的历史记录更加整洁和易于理解。 1. 什么是 Rebase? …...
二分查找一>:在排序数组中查找元素的第一个和最后一个位置
1.题目: 2.解析:这里不能用传统二分,因为涉及范围,传统二分时间复杂度会降为O(N),要做些改动。 步骤一:查找区间左端点 细节图: 步骤二:查找区间右端点: 细节图: 代码…...
undeclared identifier ‘UNITY_PREV_MATRIX_M‘ - Unity Shader自己写URP,引用内部 hlsl
碰到这样的问题,居然非常淡定 这个链接里说了问题: 一个哥们A问,为什么include urp common.hlsl 提示莫名其妙 另一个哥们B说,这个issue 说了,可能是这个原因(也没正面答) 从issue我们知道&a…...
信息安全工程师(29)存储介质安全分析与防护
前言 存储介质安全分析与防护是确保数据安全与完整性的重要环节。存储介质,如硬盘、U盘、SD卡等,作为数据的载体,其安全性直接关系到数据的安全。 一、存储介质安全分析 1. 数据泄露风险 格式化不彻底:传统的格式化操作往往只能删…...
Html5知识点介绍
HTML5 是 HTML 的最新版本,它引入了许多新特性和元素来增强 Web 开发的能力和灵活性。以下是一些关键的 HTML5 知识点: 1. 语义化标签 HTML5 增加了许多新的语义化标签,用来更好地定义页面结构和内容,这些标签使代码更加清晰易读&…...
探索机器学习中的特征选择技术
在机器学习和数据科学领域,特征选择是一个关键步骤,它不仅有助于提高模型的性能,还能帮助我们更好地理解数据。本文将深入探讨特征选择的重要性、常见方法以及如何在实际项目中应用这些技术。 一、特征选择的重要性 降低维度:减…...
数造科技入选中国信通院《高质量数字化转型产品及服务全景图》三大板块
9月24日,2024大模型数字生态发展大会暨“铸基计划”年中会议在北京召开。会上,中国信通院发布了2024年《高质量数字化转型产品及服务全景图(上半年度)》和《高质量数字化转型技术解决方案(上半年度)》等多项…...
什么是分布式数据库
分布式数据库(Distributed Database)是一种数据库系统,它的数据被存储在不同的物理位置,但对用户来说表现得就像一个单一的、统一的数据库。这种系统由多个自治的数据库站点组成,这些站点通过网络相互连接,…...
从u盘直接删除的文件能找回吗 U盘文件误删除如何恢复
U盘上的文件被删除并不意味着它们立即消失。事实上,删除操作只是将文件从文件系统的目录中移除,并标记可用空间。这意味着在文件被覆盖之前,它们仍然存在于存储介质上。因此,只要文件没有被新的数据覆盖,我们就有机会恢…...
如何使用ssm实现基于HTML的中国传统面食介绍网站的搭建+vue
TOC ssm758基于HTML的中国传统面食介绍网站的搭建vue 第1章 绪论 1.1选题动因 当前的网络技术,软件技术等都具备成熟的理论基础,市场上也出现各种技术开发的软件,这些软件都被用于各个领域,包括生活和工作的领域。随着电脑和笔…...
【生成模型】学习笔记
生成模型 生成模型概述(通俗解释) 生成的核心是生成抽象化的内容,利用已有的内容生成没有的/现实未发生的内容。这个过程类似于人类发挥想象力的过程。 生成模型的应用场景非常广泛,可以应用于艺术表达,如画的生成、…...
大语言模型知识点分享
1 目前主流的开源模型体系有哪些? Prefix Decoder 系列模型 核心点: 输入采用双向注意力机制,输出为单向注意力。双向注意力意味着输入的每个部分都可以关注到输入的所有其他部分,这在理解上下文时具有很强的优势。 代表模型&a…...
openpnp - 底部相机高级校正的参数设置
文章目录 openpnp - 底部相机高级校正的参数设置概述笔记修改 “Radial Lines Per Calibration Z” 的方法不同 “Radial Lines Per Calibration Z”的校验结果不同 “Radial Lines Per Calibration Z”的设备校验动作的比较总结备注END openpnp - 底部相机高级校正的参数设置 …...
劳动与科技、艺术结合更好提高劳动教育意义
在中小学教育中,劳动教育是培养学生基本生活技能和劳动习惯的重要环节。但当代的劳动教育不在单纯的劳动,而是劳动技能的提升与学习,通过学习劳动技能与实践活动,强化劳动教育与其他课程的融合,学生深刻理解劳动的意义…...
【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
微信小程序 - 手机震动
一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注:文档 https://developers.weixin.qq…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
【JavaWeb】Docker项目部署
引言 之前学习了Linux操作系统的常见命令,在Linux上安装软件,以及如何在Linux上部署一个单体项目,大多数同学都会有相同的感受,那就是麻烦。 核心体现在三点: 命令太多了,记不住 软件安装包名字复杂&…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
FFmpeg avformat_open_input函数分析
函数内部的总体流程如下: avformat_open_input 精简后的代码如下: int avformat_open_input(AVFormatContext **ps, const char *filename,ff_const59 AVInputFormat *fmt, AVDictionary **options) {AVFormatContext *s *ps;int i, ret 0;AVDictio…...
