Sqlserver游标的尝试

DECLARE @ProName NVARCHAR(50)
DECLARE @CityName NVARCHAR(50)
DECLARE @ProId INT
DECLARE @CityId INT
DECLARE Test_Cursor CURSOR FOR
SELECT a.AreaId,a.AreaName,b.AreaName FROM AreaFull AS a RIGHT JOIN AreaFull AS b ON a.AreaPid=b.AreaId WHERE a.AreaPid>34
OPEN Test_Cursor
FETCH NEXT FROM Test_Cursor INTO @CityId,@CityName,@ProName
WHILE @@FETCH_STATUS = 0
BEGIN
SET @ProId=(SELECT ID FROM dbo.Web_Area WHERE [email protected] AND OrderId=27 )
INSERT INTO Web_Area(Name,HeadID,LV,Family,OrderId) VALUES(@CityName,@ProId,4,4,28)
FETCH NEXT FROM Test_Cursor INTO @CityId,@CityName,@ProName
END
CLOSE Test_cursor
DEALLOCATE Test_cursor

SELECT * FROM dbo.Web_Area

时间: 2024-11-29 07:01:05

Sqlserver游标的尝试的相关文章

Sqlserver游标复习

经常写存储过程,但今天在游标使用过程中还是疏忽了一些事情,执行过程中一直执行不下去,后来直接sqlserver挂了,教训啊! 代码虽简单,望铭记: Create PROCEDURE [dbo].[temphxb] AS BEGIN declare @uid int declare mycursortemp Cursor for select uid from temptable1 where Indate>'2015-05-21' and type='1' group by uid having

sqlserver游标概念与实例全面解说

引言 我们先不讲游标的什么概念,步骤及语法,先来看一个例子:   ?????? 表一 OriginSalary??????????????????????????????????????????????????? 表二 AddSalary 现在有2张表,一张是OriginSalary表--工资表,有三个字段0_ID 员工号(NVARCHAR).O_Name员工姓名(NVARCHAR).O_Salary工资(FLOAT). 另一张表AddSalary表-加薪表.有2个字段,O_ID员工号.A_Sa

sqlserver 游标的使用

举个栗子: -- 临时变量 DECLARE @Id UNIQUEIDENTIFIER -- 声明游标名 DECLARE cursor_name CURSOR FOR SELECT ID from COM_DataDictionaryInfo -- 打开游标 OPEN cursor_name -- 先查询一次再循环,防止有多个游标时@@FETCH_STATUS=-1不能进入下个游标循环的情况 FETCH NEXT FROM cursor_name into @Id -- 循环取数据 WHILE @

SQLserver游标原理和使用方法

在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT INSERT 语句.但是我们常常会遇到这样情况,即从某一结果集中逐一地读取一条记录.那么如何解决这种问题呢?游标为我们提供了一种极为优秀的解决方案. 1.1 游标和游标的优点 在数据库中,游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.游标总是与一条T_SQL 选择语句相关联因为游标由结果集

SqlServer游标简介

游标实例:             Declare MyCusror Cursor Scroll For Select * From Master_Goods Order By GoodsID Open MyCursor Fetch next From MyCursor             Into @GoodsCode,@GoodsName While(@@Fetch_Status = 0) Begin Begin    Select @GoodsCode = Convert(Char(2

sqlserver 游标中的查询语句用到变量问题

declare @TableName VARCHAR(32); --数据表名 declare @DateCounter VARCHAR(32); --时间日期 declare @ID --创建游标 --exec 后面的语句需是字符类型,所以@TableName和@DateCounter变量需是字符类型 EXEC('DECLARE myCursor CURSOR FOR SELECT ID FROM '[email protected]+' WHERE CONVERT(VARCHAR(10),Da

SQLServer游标详解

一.游标概念 我们知道,关系数据库所有的关系运算其实是集合与集合的运算,它的输入是集合输出同样是集合,有时需要对结果集逐行进行处理,这时就需要用到游标.我们对游标的使用一本遵循"五步法":声明游标->打开游标->读取数据->关闭游标->删除游标.以下就从这五步对游标的使用进行说明,并给出具体实例. 二."五步法"讲解 1.声明游标(DECLARE CURSOR) (1) DECLARE CURSOR 既接受基于 ISO 标准的语法,也接受使用

sqlserver游标使用误区

在使用游标出现逻辑错误时,查阅资料,只有改掉while中的游标取值在while循环最后,没有说明while以前会出现的错误,而且没有具体说明原因,今天在工作中解决了这个问题,写了这个博客,希望对使用游标少的园友有帮助,也给自己提个醒. 按照游标的规则使用时,在使用游标取到数据时后进行操作在逻辑上正确,但是会造成数据异常,在正常流程下逻辑正确,所以很难发现其中的逻辑错误,下面是工作时的例子,以及解决的具体流程. 好久没用游标,今天查了下资料开始使用,但是出现问题: --插入客户信息 create

sqlServer游标的使用

USE [PatPD1]GO/****** Object:  UserDefinedFunction [dbo].[fun_GetConditionInner]    Script Date: 2015/5/9 9:03:38 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO ALTER function [dbo].[fun_GetConditionInner] (@Product varchar(20))  returns  varch