游标简单的使用
2014-08-19 19:22
417 查看
GO
/****** Object: StoredProcedure [dbo].[UP_Job_UpdatePromotionBeginInfo] Script Date: 08/19/2014 19:02:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UP_Job_UpdatePromotionBeginInfo]
AS
BEGIN
DECLARE MyFirstCursor CURSOR
FOR
SELECT a.ProductProID ,
a.productItemid ,
p.productid ,
a.ProPromKindID ,
a.PromPrice,
--新添加五个字段
a.IsLimitBuyStatus,
a.LimitBuyPersonalCount,
a.LimitBuyCount,
a.bDate,
a.eDate
FROM ProductPro a
INNER JOIN productitem item ON a.productitemid = item.productitemid
INNER JOIN product p ON p.productid = item.productid
WHERE a.BDate <= GETDATE()
AND a.EDate >= GETDATE()
AND a.[State] = 0
OPEN MyFirstCursor
DECLARE @ProductProID INT
DECLARE @productItemid INT
DECLARE @productid INT
DECLARE @ProPromKindID INT
DECLARE @num INT
DECLARE @PromPrice MONEY
--新添加五个字段
DECLARE @IsPur INT
DECLARE @OnePurNum INT
DECLARE @TotalPurNum INT
DECLARE @StartDate DATETIME
DECLARE @LastDate DATETIME
FETCH NEXT FROM MyFirstCursor INTO @ProductProID, @productItemid, @productid, @ProPromKindID, @PromPrice,@IsPur,@OnePurNum,@TotalPurNum,@StartDate,@LastDate
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
--修改ProductPro 状态
UPDATE dbo.ProductPro
SET [State] = 1
WHERE ProductProID = @ProductProID
UPDATE TOP ( 1 )
product
SET ProductAttributeID = @ProPromKindID ,
Price = @PromPrice ,
Price2 = @PromPrice
WHERE productid = @productid
UPDATE TOP ( 1 )
productitem
SET OldPrice = price ,
price = @PromPrice
--新添加五个字段
,IsPur=@IsPur
,OnePurNum=@OnePurNum
,TotalPurNum=@TotalPurNum
,StartDate=@StartDate
,LastDate=@LastDate
WHERE productitemid = @productItemid
--xia 20140218 限制团购数量 改动
SELECT @num = LimitNum
FROM dbo.ProductPro
WHERE ProductProID = @ProductProID
UPDATE productitem
SET StoreNum = @num
WHERE ProductItemID = @productItemid
--读取下一行
FETCH NEXT FROM MyFirstCursor INTO @ProductProID,
@productItemid, @productid, @ProPromKindID, @PromPrice
END
--关闭游标
CLOSE MyFirstCursor
--删除游标
DEALLOCATE MyFirstCursor
END
/****** Object: StoredProcedure [dbo].[UP_Job_UpdatePromotionBeginInfo] Script Date: 08/19/2014 19:02:11 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[UP_Job_UpdatePromotionBeginInfo]
AS
BEGIN
DECLARE MyFirstCursor CURSOR
FOR
SELECT a.ProductProID ,
a.productItemid ,
p.productid ,
a.ProPromKindID ,
a.PromPrice,
--新添加五个字段
a.IsLimitBuyStatus,
a.LimitBuyPersonalCount,
a.LimitBuyCount,
a.bDate,
a.eDate
FROM ProductPro a
INNER JOIN productitem item ON a.productitemid = item.productitemid
INNER JOIN product p ON p.productid = item.productid
WHERE a.BDate <= GETDATE()
AND a.EDate >= GETDATE()
AND a.[State] = 0
OPEN MyFirstCursor
DECLARE @ProductProID INT
DECLARE @productItemid INT
DECLARE @productid INT
DECLARE @ProPromKindID INT
DECLARE @num INT
DECLARE @PromPrice MONEY
--新添加五个字段
DECLARE @IsPur INT
DECLARE @OnePurNum INT
DECLARE @TotalPurNum INT
DECLARE @StartDate DATETIME
DECLARE @LastDate DATETIME
FETCH NEXT FROM MyFirstCursor INTO @ProductProID, @productItemid, @productid, @ProPromKindID, @PromPrice,@IsPur,@OnePurNum,@TotalPurNum,@StartDate,@LastDate
WHILE ( @@FETCH_STATUS = 0 )
BEGIN
--修改ProductPro 状态
UPDATE dbo.ProductPro
SET [State] = 1
WHERE ProductProID = @ProductProID
UPDATE TOP ( 1 )
product
SET ProductAttributeID = @ProPromKindID ,
Price = @PromPrice ,
Price2 = @PromPrice
WHERE productid = @productid
UPDATE TOP ( 1 )
productitem
SET OldPrice = price ,
price = @PromPrice
--新添加五个字段
,IsPur=@IsPur
,OnePurNum=@OnePurNum
,TotalPurNum=@TotalPurNum
,StartDate=@StartDate
,LastDate=@LastDate
WHERE productitemid = @productItemid
--xia 20140218 限制团购数量 改动
SELECT @num = LimitNum
FROM dbo.ProductPro
WHERE ProductProID = @ProductProID
UPDATE productitem
SET StoreNum = @num
WHERE ProductItemID = @productItemid
--读取下一行
FETCH NEXT FROM MyFirstCursor INTO @ProductProID,
@productItemid, @productid, @ProPromKindID, @PromPrice
END
--关闭游标
CLOSE MyFirstCursor
--删除游标
DEALLOCATE MyFirstCursor
END
相关文章推荐
- 游标简单使用
- 存储过程中 游标(CURSOR)的简单使用及其他
- 使用游标循环表的简单DEMO
- 简单使用游标更改数据
- 简单使用游标插入数据
- 简单使用游标插入数据
- 简单测试动态游标(REF CURSOR)的使用
- SQL游标的简单使用
- SQL游标使用简单例子
- 简单使用游标插入数据
- oracle 游标 简单使用
- 游标简单使用
- 游标的简单使用
- [oracle编程]pl/sql --标量 复合变量以及游标的简单使用
- hibernate里使用jdbc方式调用oracle带游标返回参数的简单分页存储过程
- 游标简单使用
- 游标的简单使用
- sql 游标简单使用(判断临时表是否存在)
- 利用navicat创建存储过程、触发器和使用游标的简单实例
- 利用navicat创建存储过程、触发器和使用游标的简单实例