批量删除表

DECLARE @Table NVARCHAR(30)
DECLARE tmpCur CURSOR FOR
SELECT name FROM sys.objects WHERE TYPE=‘U‘ AND name LIKE N‘HSUPA%‘
OPEN tmpCur
FETCH NEXT FROM tmpCur INTO @Table

WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @sql VARCHAR(100)
SELECT @sql = ‘drop table ‘ + @Table
EXEC(@sql)
FETCH NEXT FROM tmpCur INTO @Table
END
CLOSE tmpCur
DEALLOCATE tmpCur

时间: 2024-11-10 11:08:15

批量删除表的相关文章

MySQL批量删除表

overview 之前在工作中调试时建了一个每分钟执行一次的cron定时任务,每分钟均产生一个带时间信息的表名称,并忘了删除这个定时任务,待发现时已经有将近3000个新建的表了,由于单条单条地删除很慢,现需要批量删除这些带时间信息的表. theory&&measure theory 1 登陆mysql的information数据库,查找tables表,找出需要删除的表所在的数据库下的    所有符合时间要求的表名称 2 将查询出来的表名称拼接成drop table指令数据的形式,例如 dr

MySQL根据正则表达式批量删除表

最近在维护一个wordpress商城项目,商城是多站的,会为独立的站创建出几张表.项目在测试服务器上,貌似是被爬虫恶意注册,产生了几千个用户,就产生了几万张表,导致数据库导入导出都像蜗牛一样,慢得要死,所以就只能上服务器执行SQL删除了,先暂时关闭了注册的功能,由于注册貌似没有验证的条件造成的,然后就写了几条SQL语句删除这几万张多余的表. 首先用SSH登录了服务器,登录mysql数据库: mysql -uroot -proot 注:-u 后面为你的数据库用户名    -p后面为你的数据库密码

mysql批量删除表数据

2015-09-23 #delete_table_data.sh#批量删除mysql库中表数据 #!/bin/bash ### AUTHOR: Leo ### DATE: 2015/09/23 ### REV: 1.0 echo -e "Input the dbname you want to use: \c" read db mysql -uroot -ppro#pateo -e "use $db;show tables;"|grep -v Tables>t

Greenplum(PostgreSql)函数实现批量删除表

项目做库迁移,前期需要经常调整表结构语句,涉及多次的批量drop,本着偷懒精神写了这个函数.鉴于本函数在生产环境有巨大风险,建议测试完毕后立即删除. 主要步骤很简单:1)从pg_tables查询得到相关表名称:2)遍历查询结果拼接动态语句然后循环执行. 代码: create or replace function vppp.func_drop_tables() returns void as $body$ -- 注意schema名称 declare tmp varchar(512); -- 存放

sql - 批量删除表

今天帮朋友做点数据,其中因为原始数据的第一步处理需求变了,所以基本上过程中,除了原始数据,其他所有表都没有用了,但是sql Server又不允许同时选多个表进行删除操作. 我的需求是,除了表t_init之外,都要删除,sql 代码为: /****** Script for SelectTopNRows command from SSMS ******/ use RainFactor; DECLARE @Table NVARCHAR(30) DECLARE tmpCur CURSOR FOR SE

mysql 批量删除表

<?php set_time_limit(0); $con = mysql_connect("localhost", "user", "pwd"); $dbname = "db"; if ($con) { if (mysql_select_db($dbname, $con)) { $sql = "SHOW TABLES WHERE Tables_in_$dbname LIKE 'prd_%';"; $

批量删除数据库表

由于工作的原因,有时候会对数据库表进行批量的处理,这时候我们可以用游标对数据库进行批量删除表操作 DECLARE @Table NVARCHAR(30) DECLARE tmpCur CURSOR FOR SELECT name FROM sys.objects WHERE TYPE='U' AND name LIKE N'HSUPA%' OPEN tmpCur FETCH NEXT FROM tmpCur INTO @Table WHILE @@FETCH_STATUS = 0 BEGIN D

mysql批量删除指定前缀或后缀表

今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了找方法,网上主要通过sql语句来删除.自己在他的基础上写了一个php文件实现了批量删除表.事实上原理是一样的. 1.MYSQL批量删除 [1]获得批量删除的命令: Select CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.t

MYSQL批量修改表前缀与表名sql语句

修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, 4), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复