清空数据库中的所有的表的存储过程
2012-12-28 17:47
344 查看
CREATE DEFINER=`root`@`%` PROCEDURE `Clear_DB`(
DB_NAME varchar(50) # 数据库名称
)
BEGIN
DECLARE done INT DEFAULT 0; #游标的标志位
DECLARE name varchar(250);
DECLARE cmd varchar(250);
DECLARE tb_name CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN tb_name;
REPEAT
FETCH tb_name INTO name;
IF NOT done THEN
#set cmd=concat('Delete from ',DB_NAME,'.','`',`name`,'`');
set cmd=concat('TRUNCATE table ',DB_NAME,'.','`',`name`,'`'); # 拼删除命令
SET @E=cmd;
PREPARE stmt FROM @E;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
UNTIL done END REPEAT;
CLOSE tb_name;
END;
call Clear_DB('数据库名称');
DB_NAME varchar(50) # 数据库名称
)
BEGIN
DECLARE done INT DEFAULT 0; #游标的标志位
DECLARE name varchar(250);
DECLARE cmd varchar(250);
DECLARE tb_name CURSOR FOR SELECT table_name FROM information_schema.TABLES WHERE table_schema=DB_NAME;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
OPEN tb_name;
REPEAT
FETCH tb_name INTO name;
IF NOT done THEN
#set cmd=concat('Delete from ',DB_NAME,'.','`',`name`,'`');
set cmd=concat('TRUNCATE table ',DB_NAME,'.','`',`name`,'`'); # 拼删除命令
SET @E=cmd;
PREPARE stmt FROM @E;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
UNTIL done END REPEAT;
CLOSE tb_name;
END;
call Clear_DB('数据库名称');
相关文章推荐
- SQL Server 文档整理 - 2 清空所有数据库表记录的存储过程
- 写了一个针对一个的所有表进行的存储过程!可以方便的清空数据库!
- 清空数据库所有表,所有存储过程SQL语句
- 一次性删除数据库所有表和所有存储过程 SQL语句
- 删除数据库的所有存储过程、主键、外键、索引等
- 一次性删除数据库所有表和所有存储过程 SQL语句
- 删除数据库所有存储过程的SQL语句 转
- 关于codesmith的一点使用--自动生成数据库中所有表的存储过程使用模板
- 清空所有表中的数据的存储过程
- 调用系统存储过程清空所有表
- sqlserver查询数据库中包含某个字段的所有表和所有存储过程
- 利用SQL语句查找某数据库中所有存储过程包含的内容
- 给大家分享好东本喽!将当前数据库里所有存储过程进行批量替换方案
- 几行代码列举数据库中的所有存储过程和存储过程参数
- 从数据库中导出所有的存储过程的4种方法
- 删除数据库的所有存储过程、主键、外键、索引等
- SQL Server查询数据库所有存储过程、触发器、索引信息SQL分享
- 查询指定数据库的所有存储过程和参数
- 一个MySQL清除数据库所有表数据保留表结构的存储过程
- sqlserver中打印出某个数据库的所有存储过程代码的例子