SQL server 里对多行数据进行循环处理

DECLARE @FinaceDBName NVARCHAR(255);

DECLARE @ord INT;

DECLARE @year INT;

DECLARE db_cursor CURSOR FOR

SELECT FinaceDBName, ord, year

FROM dbo.app_AccountSys_conf

WHERE dt = @DateThreshold AND year >= (DATEPART(YEAR, @DateThreshold) - 3) order by ord;

OPEN db_cursor

FETCH NEXT FROM db_cursor INTO @FinaceDBName, @ord, @year;

WHILE @@FETCH_STATUS = 0

BEGIN

-- 在这里写下基于每行数据执行的SQL语句

IF (@FinaceDBName IS NOT NULL)

BEGIN

PRINT N'获取到的财务数据库名为: ' + @FinaceDBName

IF EXISTS (SELECT 1 FROM sys.databases WHERE name = @FinaceDBName)

BEGIN

PRINT @FinaceDBName + ' 数据库存在';

-- 这里可以执行你想要在数据库存在时的操作

END

ELSE

BEGIN

PRINT @FinaceDBName + ' 数据库不存在';

-- 这里可以执行数据库不存在时的操作

END

END

FETCH NEXT FROM db_cursor INTO @FinaceDBName, @ord, @year;

END

CLOSE db_cursor;

DEALLOCATE db_cursor;

相关推荐
Full Stack Developme22 分钟前
MySQL 触发器 存储过程 介绍
数据库·mysql
杨云龙UP30 分钟前
MySQL慢查询日志暴涨导致磁盘告警:slow query log膨胀至397G的生产故障排查:清理、参数优化
linux·运维·服务器·数据库·mysql
Bat U41 分钟前
MySQL数据库|视图+索引
数据库·mysql
SQVIoMPLe1 小时前
[拆解LangChain执行引擎]以Actor模型的视角来看Pregel
服务器·数据库·langchain
你都会上树?1 小时前
Ubuntu22 安装PostgreSQL
数据库·postgresql
想唱rap2 小时前
线程之条件变量和生产消费模型
java·服务器·开发语言·数据库·mysql·ubuntu
RInk7oBjo2 小时前
MySQL的编译安装
数据库·mysql·adb
java资料站2 小时前
MySQL 增量同步脚本
android·数据库·mysql
ningmengjing_2 小时前
从零推导出 Redis
数据库·redis
IvorySQL2 小时前
PostgreSQL & IvorySQL 技术交流 Meetup・郑州站| 4.18 线下开讲,只聊硬核技术
数据库·postgresql·开源