MS SQL Server2005存储过程、游标、游标嵌套综合例子:
放在这里备忘》》》
create proc decisionPathRefSchemes
as
begin
DECLARE @pathId varchar(64)
DECLARE @schemeId varchar(64)
DECLARE @flag integer
DECLARE @seq integer
DECLARE mycursor cursor
for select id from imps_pd_decision_path where surfaceType = '沥青路面' and roadGrade = '高速、一级、二级'
DECLARE mycursor2 cursor
for select id from imps_pd_decision_scheme
set @seq = 10000
open mycursor
fetch next from mycursor into @pathId
while @@fetch_status=0
begin
set @flag = 0
select @flag=1 from imps_pd_path_ref_scheme where pathId=@pathId
print @pathId
print @flag
if @flag = 0
begin
/*使用游标嵌套*/
open mycursor2
fetch next from mycursor2 into @schemeId
while @@fetch_status=0
begin
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,@schemeId)
set @seq = @seq + 1
fetch next from mycursor2 into @schemeId
end
close mycursor2
/*
不用游标时:
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cd457b0001')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6ce234a0003')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cf087c0005')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cf4b230006')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cf95aa0007')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6cfd5920008')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d023160009')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d06b4b000a')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d2c87a000b')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d2f900000c')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d32cf1000d')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d36bef000e')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d3ce44000f')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d419b50010')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52ad6a9c0012ad6d541bc0013')
set @seq = @seq + 1
insert into imps_pd_path_ref_scheme (id,pathId,schemeId) values (convert(varchar(64), @seq),@pathId,'8a819be52afa3280012afae7baaa0001')
set @seq = @seq + 1
*/
end
fetch next from mycursor into @pathId
end
/* 嵌套的游标先销毁*/
deallocate mycursor2
close mycursor
/* 外层游标后销毁*/
deallocate mycursor
end
/* 执行存储过程*/
--exec decisionPathRefSchemes
/* 删除存储过程*/
--drop proc decisionPathRefSchemes
分享到:
相关推荐
游标是SqlServer中一种非常重要的数据库对象,它的作用是允许逐行访问由SQL Server返回的结果集。结果集通常包括多行数据,而游标则能够让用户以程序的方式逐行处理这些数据。在实际应用中,游标能够提供很多有用的...
下面是一个订单取消的含2个游标的存储过程 set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ALTER PROCEDURE [dbo].[CancelOrderBySystem] AS BEGIN declare /*声明变量*/ @Status varchar(100), –状态 ...
SqlServer存储过程及调试指南的知识点如下: 1. 存储过程概念:存储过程是一组为完成特定功能的SQL语句集,这些语句经过编译后存储在数据库中,供用户通过指定存储过程名和参数(如有)来执行。存储过程被称作...
本示例提供了一个关于存储过程、异常处理、错误消息返回、游标嵌套及其相关问题解决的综合案例。通过这些知识点的学习,初学者可以更好地理解和掌握如何编写健壮、高效的数据库应用程序。同时,对于更高级的应用场景...
SQL对游标嵌套的应用 学校宿舍管理系统(实际上是个子系统): 包括以下几个表: 楼栋表;楼层表;房间表;学员住宿表 脚本如下: --楼栋表
完整的SQL SERVER双层游标嵌套示例
总而言之,"SQL SERVER数据库开发之存储过程应用"教程会涵盖以上这些核心概念,并可能深入到高级主题,如动态SQL、游标、异常处理、临时表和变量的使用等。通过学习和实践,开发者可以提升在SQL Server环境下的...
- 游标和嵌套循环:在存储过程中使用游标进行逐行处理,以及嵌套存储过程的用法。 9. **最佳实践** - 设计原则:如何编写可读性强、易于维护的存储过程。 - 性能监控:使用SQL Server Profiler或其他工具分析...
在SQL Server中,事务、游标、存储过程和触发器是数据库管理中不可或缺的重要概念,它们各自扮演着关键角色,确保数据的完整性和一致性。 **事务(Transactions)**是数据库操作的基本单位,它保证了一组操作要么...
T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程和数据库控制的一种扩展SQL语法。此书主要关注于如何高效地使用T-SQL进行数据检索和处理,为数据库管理员和开发人员提供...
《Microsoft SQL Server 2005技术内幕:T-SQL查询》是一本深入解析SQL Server 2005中T-SQL查询语言的专业书籍。T-SQL(Transact-SQL)是微软对标准SQL的扩展,是SQL Server的核心组件,用于数据库管理、数据查询和...
### SQL Server系统存储过程全局变量解析 在SQL Server中,全局变量是一类特殊的变量,它们由系统维护,用于存储和返回关于SQL Server运行时状态的信息。这些变量无需声明即可使用,且其值不能被用户直接修改。全局...
SQL Server的存储过程是数据库管理系统中的重要组成部分,它是一组预先定义并编译好的Transact-SQL语句,可以接受参数并返回结果。在SQL Server 2000中,存储过程可以创建为永久性对象,供多次重复使用,也可以创建...
SQL Server 2005版本引入了许多新特性,如改进的性能优化工具、新的存储过程、触发器以及更强大的查询功能。本书会详细讲解这些新特性和如何有效利用它们。 首先,书中会介绍T-SQL的基础知识,包括SELECT语句的结构...
在MySQL中,存储过程是一种预编译的SQL语句集合,可以用于执行复杂的数据库操作,包括循环和游标的使用。游标允许我们逐行处理查询结果,这对于迭代数据进行处理非常有用。本示例中,我们将探讨如何在存储过程中循环...
15. **嵌套存储过程**: - 一个存储过程可以调用另一个存储过程,形成层次结构。 通过学习和实践这100多个例子,你将能够熟练地编写、调试和优化SQL Server存储过程,解决各种实际问题。无论是简单的数据操作还是...
本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部体系结构,包含了非常全面的编程参考,提供了使用Transact-SQL(T-SQL)的专家级指导,囊括了非常全面的编程参考,揭示了基于...
练习题目涉及到使用游标显示特定学生信息、输出报名人数最多的课程信息以及创建一个存储过程来找出某系的最大报名人数。这些练习有助于理解如何在实际场景中运用事务和游标编程。 总结来说,事务和游标是SQL编程中...