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;

相关推荐
小光学长4 分钟前
基于ssm的房屋租赁系统3952a330(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
悦悦欧呐呐呐呐20 分钟前
Redis 缓存中,穿透、击穿、雪崩的区别是什么?如何避免?
数据库·redis·缓存
@游子21 分钟前
第二章-MySQL之手工注入(二)
数据库·mysql
前进的李工22 分钟前
SQL入门:从零掌握数据库查询语言
数据库·sql·mysql
心无旁骛~28 分钟前
openGauss 在 AI、RAG 与向量数据库时代的技术破局与生态深耕
数据库·人工智能
6***941533 分钟前
MySQL 字符串日期格式转换
android·数据库·mysql
g***866941 分钟前
MySQL - Navicat自动备份MySQL数据
android·数据库·mysql
youxiao_901 小时前
数据库基础与安装
数据库
q***01771 小时前
【MySQL】数据类型
android·数据库·mysql
SelectDB1 小时前
Apache Doris 在小米统一 OLAP 和湖仓一体的实践
运维·数据库·程序员