`
vanillalyx
  • 浏览: 64553 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

sql游标和动态游标

阅读更多

--普通游标

------------------------------------------------------
declare @sql nvarchar(500) --sql必须是nvarchar类型
declare @task_id bigint
declare @task_ids varchar(30)
declare @orgcode varchar(2)
declare @count int

declare @tableName varchar(100)--这个变量是个varchar

declare @datatableName varchar(100)
declare orgcode_cursor cursor
for
 select orgcode  from lib_org where len(orgcode)=2 and orgcode <> -1
open orgcode_cursor 
fetch next from orgcode_cursor into @orgcode
while(@@fetch_status =0)
begin
 ---开始取一个省的所有任务id

 set @tableName = 'lib_task_p'+@orgcode

 --set @datatableName = 'lib_task3_p'+@orgcode
 --set @task_ids = '3,6,9'
 --set @datatableName = 'lib_task2_p'+@orgcode
-- set @task_ids = '2,5,8'
set @datatableName = 'lib_task1_p'+@orgcode
set @task_ids = '1,4,7'



set @sql = 'select  @a=count(*) from '+@tableName+'  where uiid not in(select fk_task_id from '+@datatableName+') and yyyy = 2009 and mm in(7,8) and fk_task_level = 3 and fk_tasktype_id in('+@task_ids+') and actstatus<>0'
EXEC sp_executesql @sql,N'@a decimal(18,0) output',@count output	

if @count<>0
begin
	print 'orgcode:'
	
	print @orgcode
	print @count
end

 ---结束取一个省的所有任务id
 fetch next from orgcode_cursor into @orgcode
end
close orgcode_cursor
deallocate orgcode_cursor



--动态游标

declare @sql nvarchar(500)
declare @tablename varchar(20)
declare @task_id bigint
set @tablename = 'lib_org'
--只有下面两句有区别
set @sql =  'declare pcursor cursor for select uiid from '+@tablename
exec (@sql)

open pcursor
fetch next from pcursor into @task_id
while(@@fetch_status=0)
begin
print @task_id
fetch next from pcursor into @task_id
end
close pcursor
deallocate pcursor

---------------------------------------


分享到:
评论
1 楼 vanillalyx 2009-09-29  
http://www.zxbc.cn/html/20080112/31306.html3种实现SQLSERVER动态游标的方法

相关推荐

    静态、动态sql及各种游标

    静态、动态SQL及各种游标 静态SQL和动态SQL是两种不同的SQL语句执行方式,分别应用于不同的场景中。静态SQL是指在PL/SQL中直接运行的SQL语句,没有什么特别之处。动态SQL则是指利用EXECUTE IMMEDIATE语句执行的SQL...

    SQL游标原理和使用方法.doc

    ### SQL游标原理和使用方法 #### 一、引言 在数据库开发中,当我们需要检索数据时,通常会使用`SELECT`语句。但在某些情况下,我们需要从查询结果集中逐条读取记录,这时就需要用到游标。本文将详细介绍SQL游标的...

    DB2游标及动态SQL

    ### DB2游标及动态SQL详解 #### 一、DB2游标概念与使用 **1.1 游标简介** 在DB2中,游标是一种用于遍历查询结果集的强大工具。它允许用户一行一行地处理数据,这对于需要逐行处理数据的应用场景非常有用。游标通常...

    SQL游标使用例子--有注释

    ### SQL游标使用详解 #### 一、引言 在SQL编程中,游标是一种用于处理查询结果集的工具,可以实现对数据行的逐行访问。本文将通过一个具体的示例来详细介绍如何使用SQL游标,并解释其背后的原理与应用场景。 ####...

    SQL游标小计

    SQL游标小计

    SQL游标原理和使用方法

    总结来说,SQL游标是数据库编程中不可或缺的工具,尤其在处理复杂操作和需要细粒度控制数据流时。正确理解和运用游标,能够提高代码的灵活性和处理效率,解决许多特定场景下的问题。了解游标的工作原理和使用方法,...

    SQL经典游标使用方法

    综上所述,理解并熟练掌握SQL游标是提升数据库操作能力的重要步骤。通过游标,我们可以实现更加灵活和精细的数据处理,但也需要注意在性能和灵活性之间找到平衡。通过阅读和实践上游水位年报查询.txt、龙摆尾(坚行...

    SQL语句\sql 游标总结

    SQL 语句和游标总结 SQL 语句和游标是数据库管理系统中两个非常重要的概念。游标提供了一种从表中检索数据并进行操作的灵活手段,主要用在服务器上,处理由客户端发送给服务器端的 SQL 语句,或是批处理、存储过程...

    整理:oracle pl/sql 入门+ 数组使用+游标+动态SQL

    Oracle PL/SQL是Oracle数据库系统中的过程式编程语言,它扩展了SQL...通过阅读这个文档,你将获得关于Oracle PL/SQL的全面理解,包括如何在程序中有效地使用数组、游标和动态SQL,从而更好地管理和操作数据库中的数据。

    实训SQL游标的使用

    在SQL(结构化查询语言)中,游标(Cursor)是一种重要的编程工具,它允许数据库开发者按需逐行处理查询结果。...通过不断练习和学习,你将能够更好地理解和运用SQL游标,从而提升你的数据库开发能力。

    sql 游标详解

    ### SQL 游标详解 #### 一、游标的基本概念 在SQL中,游标是一种特殊的指针,用于逐行地检索查询结果。这与一般的SQL查询不同,后者通常是返回所有匹配的结果集。游标提供了对从表或多个表中获取的数据进行遍历的...

    关于sql游标使用的教程

    总之,SQL游标是数据库编程中的重要工具,它使我们能够有效地处理单个记录,尤其是在处理大量数据和实现动态逻辑时。理解并掌握游标的工作原理和使用技巧,对于提升SQL编程技能和优化数据库应用性能至关重要。

    SQL游标使用金典

    ### SQL游标使用详解 #### 一、游标概述 在深入探讨SQL游标的使用之前,我们先来了解一下什么是游标。游标是数据库管理系统的功能之一,它允许用户逐行处理查询结果集中的数据。通常情况下,当我们执行一个SELECT...

    SQL游标实例

    总结,SQL游标在处理复杂逻辑和逐行操作时发挥着重要作用。正确理解和运用游标,能够帮助我们编写出更加灵活和高效的SQL代码。然而,也要注意其可能带来的性能影响,适时优化代码,以实现最佳数据库操作性能。通过...

    sql 游标 处理数据方法

    总之,SQL游标提供了一种灵活的方式来处理和交互数据库中的数据,允许用户按需处理每一行,这在某些复杂业务逻辑或需要逐行检查和修改数据的场景下特别有用。然而,由于游标消耗更多资源,对于大数据量的操作,通常...

    SQL 游标详细介绍

    总结起来,SQL游标是数据库管理系统中处理结果集的强大工具,提供了一种灵活的方式来进行逐行数据处理。虽然游标在某些情况下非常有用,但在设计数据库应用程序时,应优先考虑使用更高效、非迭代的SQL语句,以提高...

    关于sql游标的使用教程及案例

    标题“关于sql游标的使用教程及案例”指出了文档的核心内容,即将对SQL游标使用进行讲解,并通过具体案例加深理解。...通过上述教程的学习,读者可以学会如何在Oracle数据库中使用SQL游标来处理和控制数据查询结果集。

    SQL Server 游标用法

    1. **声明(DECLARE)**:声明游标时,我们需要指定游标的名称、游标的类型(如静态、动态、快照等),以及游标将基于的SQL查询。例如: ```sql DECLARE my_cursor1 CURSOR FOR SELECT rowid, title FROM tempTab...

Global site tag (gtag.js) - Google Analytics