您的位置:首页 > 数据库

学习总结之三(SQL SERVER游标CURSOR的使用)

2011-03-21 17:50 597 查看
SET LOCK_TIMEOUT 1800

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

BEGIN TRANSACTION

DECLARE @PRD_NO VARCHAR(30)
DECLARE @CUS_NO VARCHAR(20)
DECLARE @STD_LEVEL VARCHAR(10)
DECLARE @USR VARCHAR(12)

DECLARE MY_CURSOR CURSOR FOR
SELECT DISTINCT PRD_NO,CUS_NO,STD_LEVEL,USR FROM CUS_ML_GGEC HOLDLOCK WHERE PRD_NO+'*'+CUS_NO NOT IN (SELECT PRD_NO+'*'+CUS_NO FROM PRDT_AUTH )

OPEN MY_CURSOR

FETCH NEXT FROM MY_CURSOR INTO @PRD_NO,@CUS_NO,@STD_LEVEL,@USR

WHILE (@@FETCH_STATUS = 0)
BEGIN
INSERT INTO PRDT_AUTH (PRD_NO,CUS_NO,ZS_NO,STD_LEVEL,USR,SYS_DATE,CLS_ID)
VALUES( @PRD_NO,@CUS_NO,@PRD_NO+@CUS_NO,@STD_LEVEL,@USR,GETDATE(),'T' )
FETCH NEXT FROM MY_CURSOR INTO @PRD_NO,@CUS_NO,@STD_LEVEL,@USR
END

IF @@ERROR = 0
COMMIT TRANSACTION
ELSE
ROLLBACK

或者:

CLOSE MY_CURSOR
DEALLOCATE MY_CURSOR

SET TRANSACTION ISOLATION LEVEL READ COMMITTED
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: