关于游标的使用

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go




--
ALTER PROC [dbo].[Pipsaledepar]
@saleareaid INT,
@departmentid INT
   
AS
    DECLARE @Count INT   
    SET  @Count = 0
    DECLARE @curId INT
    DECLARE cur CURSOR        --定义一个游标
        READ_ONLY
    FOR
        SELECT  StoreID FROM dbo.TBasStore WHERE SaleAreaID = @saleareaid
      --指定游标
    OPEN cur-- 打开游标
    FETCH NEXT FROM cur INTO @curId --把提取操作的列数据放到局部变量中
    WHILE ( @@fetch_status = 0 )--返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态
        BEGIN 
        
        
declare @StoreID int   
select @StoreID = StoreID from  dbo.TBasStore where StoreID=@curId




DECLARE @Count1 INT   
SET  @Count1 = 0
DECLARE @curId1 INT
DECLARE cur1 CURSOR        --定义一个游标
READ_ONLY
FOR
SELECT  UserID FROM dbo.TBasUserInfo WHERE DepartmentID = @departmentid
 --指定游标
OPEN cur1-- 打开游标
FETCH NEXT FROM cur1 INTO @curId1 --把提取操作的列数据放到局部变量中
WHILE ( @@fetch_status = 0 )--返回被 FETCH 语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态
BEGIN 
       
       
declare @UserID int   
select @UserID = UserID from  dbo.TBasUserInfo where userid=@curId1

--插入门店和业务员关系
if not exists(select Userid,StoreID from TPlaAssignStore where UserID=@UserID and StoreID=@StoreID)
begin
insert into TPlaAssignStore(Userid,StoreID,RegionID,AssignTypeID)
values(@UserID,@StoreID,1,1)
end 
 
SET @Count1 = @Count1 +1 
  
                         
--提前下一位信息
FETCH NEXT FROM cur1 INTO @curId1
   
END 
SELECT  @Count1
CLOSE cur1--关闭游标
DEALLOCATE cur1
--删除游标







 
 
SET @Count = @Count +1 
  
                          
            --提前下一位信息
            FETCH NEXT FROM cur INTO @curId
    
        END 
         SELECT  @Count
    CLOSE cur--关闭游标
    DEALLOCATE cur
--删除游标   


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值