/*对*dt库下的所有数据表删除docuemttype为空和documenttype为MD,PD,ET的数据:delete from 表名 where length(documenttype)<2 or documenttype is null or documenttype in ('et','md','pd'); */DELIMITER $$USE `数据库名称1`$$ DROP PROCEDURE IF EXISTS `存储过程名称1`$$CREATE PROCEDURE `存储过程名称1
-- 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表. DELIMITER $$ USE `dbx`$$ DROP PROCEDURE IF EXISTS `pro_xx`$$ CREATE PROCEDURE `pro_xx`() BEGIN DECLARE p_oalid INT DEFAULT 0; DECLARE STOP INT DEFAULT 0; DECLARE cur_oalid CURSOR FOR SELECToal.id FROM oal_
delimiter $$DROP PROCEDURE IF EXISTS pro_test ;CREATE PROCEDURE pro_test()begin DECLARE var_name varchar(50); DECLARE fee_18 CURSOR FORselect name from test;DECLARE EXIT HANDLER FOR NOT FOUND CLOSE fee_18; OPEN fee_18;REPEATFETCH fee_18 into var_name
CREATE PROCEDURE `test`.`new_procedure` () BEGIN DECLARE done INT DEFAULT FALSE; -- 需要定义接收游标数据的变量 ); -- 游标 DECLARE cur CURSOR FOR SELECT i FROM test.t; -- 遍历数据结束标志 DECLARE done INT DEFAULT FALSE; -- 将结束标志绑定到游标 DECLARE CONTINUE HANDLER FOR NOT FOUND S
MSSQL数据库服务器上有很多类似的数据库,需要将这些数据库统一修改其中的某些表或者某些命令,那么就会想到用游标来遍历. 先来说思路: 1,首先需要查询出所有的数据库: select [name] from [master].[dbo].[sysdatabases] order by [name]; --查询MSSQL中所有数据库名称 2,用游标CURSOR来集合查询出来的数据库名称集合,来实现循环遍历每一个数据库: 3,在循环遍历每一个数据库名称时,通过拼接sql语句来实现命令字符串,并且用E