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;

相关推荐
罗超驿5 分钟前
9.深度剖析MySQL约束的工程设计:自增主键的分布式局限、外键约束的权衡,与CHECK的版本适配实践
数据库·mysql
Kiyra5 分钟前
Agent 的记忆不是存数据库就行:上下文预算与轻量记忆的设计实战
数据库·人工智能·后端·面试·职场和发展·哈希算法
jiayong2310 分钟前
MySQL 8.0 数据库恢复问题完整解决方案
数据库·mysql
czlczl2002092524 分钟前
普通索引和唯一索引 查询性能差异
数据库
@小柯555m34 分钟前
MySql(正则表达式--电话号码格式校验)
数据库·sql·mysql·正则表达式
van久34 分钟前
Day29:Redis 缓存实战
数据库·redis·缓存
.柒宇.42 分钟前
Redis哨兵模式详解
数据库·redis·bootstrap
重生之小比特43 分钟前
【MySQL 数据库】复合查询
android·数据库·mysql
夕除43 分钟前
spring boot --07
数据库·sql
Elastic 中国社区官方博客43 分钟前
Elasticsearch:为 AI Agent builder 创建 skill plugin
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索