Sql Server游标使用 exec函数执行动态sql

oracle数据库实现以表格形式返回数据 已知表关系:如下图所示 期望:以表格的形式返回所有学生的考试记录:学科作为横向表头,姓名作为纵向表头,如下图所示 分两大步骤 第一步:创建一个以学科为列的新表(test_info),操作如下 详细案例请参考https://blog.youkuaiyun.com/super_DuoLa/article/details/103199300 1、打开PL/SQL,找到“Procedures”,右键... 阅读详情

数据表tb_HandledJobLog记录的是已经处理过的数据,该数据表行包含数据的实体类名字段,根据实体类名可以找到这条数据属于哪个表,然后根据找到的表可以找出每个表都有的字段AccountId,AccountId即是这条数据的提交人,根据AccountId可以找到所属公司。所以我在表tb_HandledJobLog添加了一个数据表缺少字段ResponsibleOrgId来标记数据属于哪个公司。接下来就使用游标来处理以前的老数据,由于游标用的比较少所以记录下来以备查阅。


	declare @Id varchar(36)--已办工作实体Id字段
	declare @EntityId varchar(36)--实体Id字段
	declare @TableName sysname --tablename字段
        declare @sql NVARCHAR(4000) 
	
	declare unitCursor CURSOR for SELECT a.Id,EntityId,TableName from tb_HandledJobLog a LEFT JOIN dbo.tb_EntityClass b ON a.EntityName=b.EntityClassName
	open unitCursor
	Fetch next from unitCursor INTO @Id,@EntityId,@TableName
	while (@@fetch_status=0)
	BEGIN
		SET @sql=N'UPDATE dbo.tb_HandledJobLog SET ResponsibleOrgId=(select Id from tb_Organization where Code = (select  SUBSTRING( (select OrgCode FROM View_AccountOrganization where Id=(SELECT AccountId FROM '+@TableName+' WHERE Id='''+@EntityId+''')),1,4))) WHERE dbo.tb_HandledJobLog.Id='''+@Id+''''
		EXEC(@sql)
	Fetch next from unitCursor into  @Id,@EntityId,@TableName
	end
	close unitCursor
	deallocate unitCursor


  

存储过程——实现将查询出的数据作为列新建表 本文章案例:将从用户表(sys_user)查出的用户名(name)作为新的列名,创建一个全新的表minfo。 了解完需求,开始编写存储过程。 第一步:打开PL/SQL可视化工具,从左下侧找到“Procedures”,右键“Procedures”文件夹,点击“New...”,出现以下弹窗 第二步:写入存储过程名字(驼峰命名规则)和所需参数(可有可无) 编写完信息后点击“OK”便会出现... 阅读详情

相关推荐

SQL Server 使用游标嵌套循环

关于SQL Server 游标嵌套 关于SQL Server 游标嵌套 作者:灵感联盟 游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力。我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。 ...

qq_41971373的博客 3093

sql exec 参数的传递

1 :普通SQL语句可以用exec执行 Select * from tableName exec('select * from tableName') exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N 2:字段名,表名,数据库名之类作为变量时,必须用动态SQL declare

yaer123的专栏 3032

VisionPro开发实战:CogRecordDisplay控件显示与保存图片的完整流程(附C#代码示例)

本文详细解析了VisionPro开发中CogRecordDisplay控件的图像处理全流程,包括图像加载、显示优化、动态清屏及结果保存等关键操作。通过C#代码示例,展示了如何高效使用该控件进行工业视觉应用开发,特别适合自动化检测系统的开发者参考。

weixin_42523792的博客 274

sql游标的使用与exec的两种用法

1.exec的用法 (1).执行存储过程:exec 存储过程名 参数 1 exec myprocdure @code="Z0001" 3 exec myprocdure '2019/01/01','2019/10/01','Z0001' (2).动态执行sql语句:用圆括号(),不能带输入,输出参数 1 exec ( 'Insert #exl( code ) Select ...

weixin_33853827的博客 574

PADS VX2.7学习记录05-PADS Layout设计文件Gerber等输出整理

在“PDF Document”栏中,依次选中除REF-TOP和REF-BOT之外的文件,单击图标,将其余PDF Document文件进行删除,如图所示。然后单击【生成PDF】按钮,即可创建一份PDF格式的位号图。

tianpu2320959696的博客 1023

基于STM32的家用新风系统智能控制器 | 保姆式教程 开源可复刻

本项目基于STM32F103C8T6核心控制器,完整实现了家用新风系统智能控制器的全功能开发,覆盖多传感器数据采集、双模式控制、PID调速、异常报警、掉电记忆等核心功能,全程采用保姆式无跳步教学,从硬件选型、接线、CubeMX配置、代码开发、调试排坑全流程拆解,跟着步骤一步步操作,就能顺利完成项目复刻

ZhongWeiXiang9的博客 463

从sp_executesql中返回table型数据及动态SQL语句的参数化查询

在返回分页数据时,我们会经常会用到参数化传递过滤条件,如何拼接SQL语句成了一个难题。 我们可以这样拼接: exec('sp_executesql sql语句,参数定义,参数值') sql语句和参数定义部分直接传递字符串即可,但参数值部分则要求是变量或常量,传递字符串则不可以。经测试,直接按sp_executesql格式要求传递in的参数是可以的,但传递out参数怎么都不可以,一直报未定义,...

weixin_30316097的博客 435

BIDS数据存储格式介绍与dcm2bids安装与使用

BIDS格式&dcm2bids安装与使用

machinelearning_er的博客 7308

SQL Server 数据库SQL语句中CURSOR(游标)的使用

本文主讲数据库中 游标CURSOR 的使用,欢迎阅读~ ????本文目录前言为什么要使用游标使用游标的SQL语句1. 查询结果为多条记录的SELECT语句2. CURRENT形式的UPDATE和DELETE语句 前言 将SQL嵌入到高级语言中混合编程,SQL语句负责操纵数据库,高级语言语句负责控制逻辑流程。 数据库工作单元与源程序工作单元之间的通信主要包括: (1) 向主语言传递SQL语句的执行状态信...

Henry_626的博客 1万+

DRAM内存模拟持久化设备的方法

由于持久化内存介质NVM技术的发展,越来越多的科研工作者投身到NVM相关的研究当中。但由于目前工业界并没有推出广泛使用的NVM介质设备,所以科研工作都需要自己以现有的条件,模拟NVM设备使用场景。一个简单的方法是:通过修改DRAM模拟器,达到模拟NVM的目的(可以参考:DRAMSim2模拟器分析与应用)。更高端的方式是:在真实系统中,将内存划分出一块儿,用来模拟NVM设备(类似于传统的ramdis

酷炫人笨笨熊 1898

2026年(新服务器默认密码)最新各大厂商默认凭证大全

本文整理了国内外主流服务器厂商的默认管理接口凭证信息,包括Dell、HPE、浪潮、华为等品牌的管理接口类型、默认用户名/密码和IP地址。特别强调国产服务器在信创环境下的安全风险,指出国内厂商部分型号仍保留固定默认密码(如浪潮admin/admin),而国际厂商多采用随机密码标签。文章提供了新机初始化安全流程建议:查找机箱标签、立即修改默认密码、配置网络隔离、更新固件等。最后提醒运维人员,服务器安全应从首次上电开始重视,管理接口暴露是重大风险点,必须严格执行安全规范。

你好,旧时光! 1694

SQL SERVER 动态执行SQL -- sp_executesql与EXEC

源于SQL server帮助文档对大家优查询速度有帮助!建议使用 sp_executesql 而不要使用 EXECUTE 语句执行字符串。支持参数替换不仅使 sp_executesql 比 EXECUTE 更通用,而且还使 sp_executesql 更有效,因为它生成的执行计划更有可能被 SQL Server 重新使用。 自包含批处理sp_executesql 或 EXECUTE 语句执行字符串时,字符串被作为其自包含批处理执行。SQL Server 将Transact-SQL 语句或字符串中的语句编译进

lqwind的专栏 497

7.3 空间矢量调制(SVM)整数算法

本文提出了一种基于整数运算的空间矢量调制(SVM)优化实现方案,适用于计算资源有限的Cortex-M0平台。针对传统SVM算法中复杂的三角函数和浮点运算问题,重点优化了扇区判断和占空比计算两个关键环节。在扇区判断方面,采用基于电压分量符号和相对大小的三变量法,避免了角度计算;在占空比计算方面,通过几何关系将作用时间表示为电压分量的线性组合,并采用定点数实现。方案还详细讨论了系数定点化、死区补偿等实现细节,在保证精度的同时显著降低了计算复杂度。实验结果表明,优化后的整数算法在M0平台上仅需50-80个周期即可

技术工作者 942

sql语句之存储过程,触发器,函数,事务,游标

(文章中的sql语句基于sql server) 目录 存储过程: 1.CREATE PROCEDURE语句 EXEC语句执行一个已定义的存储过程 【强化练习】 事务: L1.事务处理 1.开始事务 2.结束事务 3.撤销事务 4.回滚事务 【强化练习】 触发器: 【强化练习】 创建DDL触发器 语法格式: ALTER TRIGGER语句 DROP T...

weixin_43107805的博客 4178

Q3D提取PCB走线RLCG参数

介绍一种提取PCB走线寄生电容和寄生电感的方法

sinat_15150363的博客 2910

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

sql server 2000更新技巧&select 查询中带参数,游标中使用exec

更新多个ID最后时间的记录 update  a set qesl_no=0 from f_gxhz a where fbid_no in ('117887','117889','118112') and cjsj_date = (select max(cjsj_date) from f_gxhz b where a.fbid_no=b.fbid_no) select 查询中带参数 begi

Neil的专栏 1676

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

sql server 游标使用

1. 定义游标定义  游标语句的核心是定义了一个游标标识名,并把游标标识名和一个查询语句关联起来。DECLARE语句用于声明游标,它通过SELECT查询定义游标存储的数据集合。语句格式为:  DECLARE 游标名称 [INSENSITIVE] [SCROLL]  CURSOR FOR select语句  [FOR{READ ONLY|UPDATE[OF 列名字表]}] 参数说明:  INSENS

海蓝之家 1063

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SQL Server游标泄漏检测与性能优化实践

数据库游标是SQL Server中用于逐行处理结果集的重要机制,其工作原理是通过指针遍历查询结果。虽然提供了灵活的数据访问方式,但游标会占用内存、锁和系统元数据等关键资源。在工程实践中,未正确关闭的游标会导致资源泄漏,进而引发严重的性能问题。通过sys.dm_exec_cursors动态管理视图可以实时监控游标状态,结合会话信息和SQL文本分析,能够快速定位问题游标。典型的应用场景包括长时间运行的批处理作业和OLTP系统中的复杂事务处理。本文详细介绍如何通过LOCAL作用域、TRY-CATCH保护和自动化监

weixin_33713503的博客 373

sql server 2000/2005 游标的使用操作

1. 定义游标定义游标语句的核心是定义了一个游标标识名,并把游标标识名和一个查询语句关联起来。DECLARE语句用于声明游标,它通过SELECT查询定义游标存储的数据集合。语句格式为:DECLARE 游标名称 [INSENSITIVE] [SCROLL]CURSOR FOR select语句[FOR{READ ONLY|UPDATE[OF 列名字表]}]参数说明:INSEN

a3676212的专栏 1万+

SqlServer2012中使用动态sql语句

begin end 调试sqlServer函数用,直接在自定义函数中是不能使用 exec ( ) 动态执行执行用的,exec ( )的实际有效运用还未知 BEGIN DECLARE @paraOPFLAG NUMERIC=2; DECLARE @paraTJH000 NUMERIC=2011659; DECLARE @paraBMBH00 NUMERIC=10; DECLARE @...

WY001的博客 683

SQL SERVER 拼字符串方式 动态表名 游标变量范例

<br />存储过程1:<br />CREATE PROCEDURE [dbo].[pro_get_cursor] <br />    @In_TableName nvarchar(200),<br />    @Out_CurrencyCursor CURSOR VARYING OUTPUT<br />AS<br />    declare @sql nvarchar(2000)<br />    set @sql=N'DECLARE CurrencyCursor CURSOR<br />        

3862

SQL游标详解

摘要: SQL游标是遍历数据库结果集的指针,适用于逐行处理复杂逻辑(如发邮件、报表生成),但99%的场景可通过集合操作(JOIN/WHERE等)替代,性能差距可达100倍以上。主流数据库(SQL Server、MySQL、Oracle)游标语法差异显著,使用时需遵循生产规范,如限制数据量、确保资源释放。实测显示,10万条数据下游标耗时89秒,而集合操作仅1.8秒。最佳实践推荐优先使用集合操作,仅在必需时(如调用外部接口)使用游标,并提供优化模板与替代方案(如CTE递归)。

m0_57545130的博客 1011

SQL Server 游标curso

1.游标是什么 游标是SQLServer的一种数据访问机制,它允许用户访问单独的数据行。用户可以对每一行进行单独的处理,从而降低系统开销和潜在的阻隔情况,用户也可以使用这些数据生成的SQL代码并立即执行或输出。 2.游标的优点 SELECT语句返回的是一个结果集,但有时候应用程序并不总是能对整个结果集进行有效地处理,游标便提供了这样一种机制,它能从包括多条记录的结果集中每次提取一...

告小辞 370

SQL动态游标

说明:用动态字符串打开游标 declare @lcSqlcommand nvarchar(4000), @test cursor, @lnSucc int, @name varchar(50) set @lcSqlcommand= 'use northwind set @test=cursor local scroll for select name   from sysobje

我们的蚊蚊 831

游标遍历exec动态sql语句查询结果

游标比较特殊,可以在EXEC()中创建后再引用,通常用于动态游标.可以这样处理: declare @sql varchar(8000),@table sysname set @table = 'table1' set @sql='DECLARE abc CURSOR FOR select * from ' + @table exec(@sql) OPEN abc ... 下面

imlmy的专栏 7393

SQL Server游标泄漏检测与性能优化实战

数据库游标是SQL Server中逐行处理数据的重要机制,但其资源占用特性容易引发内存泄漏问题。通过动态管理视图sys.dm_exec_cursors可以实时监控游标状态,结合会话信息关联查询能精确定位泄漏源头。在工程实践中,采用TRY-CATCH-FINALLY代码模式和自动化监控方案可有效预防游标泄漏,而用集合操作替代游标能显著提升性能。本文详解如何通过检测僵尸游标、建立自动化监控、实施代码最佳实践等方案,解决游标泄漏导致的连接池耗尽、内存暴涨等典型生产环境问题。

weixin_30791095的博客 397
上一篇: ORA-12154: TNS:could not resolve the connect identifier specified
下一篇: [转贴] MS扫盲贴:Windows 和 GPT 常见问题解答(uefi、GPT、ESP、MSR之类的概念)
X_SpringSun
博客等级 码龄14年 17粉丝 25原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值