MS SQL SERVER 循环

----******把查询的结果集放到游标中,然后根据游标的状态循环读取********
CREATE PROCEDURE Syncdata_Hypertesionperson
AS
BEGIN
SET NOCOUNT ON;
declare @yks_id varchar(50)
declare @jk_id varchar(50)
-- ************************************修改的操作
DECLARE CUR_JK_HP CURSOR FOR
select yks.shoufid from dbo.gcv_hypertensionperson_new yks
full join dbo.GK_PersonHypeInfo jk on jk.PHID=yks.shoufid
where --cast(yks.Modify_time as datetime) >= cast((case when jk.SynsDate is null then '2001-01-01' else jk.SynsDate end) as datetime) and
yks.shoufid=jk.PHID and yks.Modify_time>jk.UpdateTime;

OPEN CUR_JK_HP;
FETCH CUR_JK_HP INTO @yks_id;
WHILE @@FETCH_STATUS=0
BEGIN
delete from dbo.GK_PersonHypeInfo where PHID=@yks_id;
exec Syncdata_insert_Hypertesionperson @yks_id;
FETCH NEXT FROM CUR_JK_HP INTO @yks_id;
END;
-- 4.关闭游标
CLOSE CUR_JK_HP;
-- 5.释放游标
DEALLOCATE CUR_JK_HP;
--**********************************新增的操作 **********/
DECLARE CUR_JK_HP2 CURSOR FOR
select yks.shoufid from dbo.gcv_hypertensionperson_new yks where yks.shoufid not in (select jk.PHID from dbo.GK_PersonHypeInfo jk)
OPEN CUR_JK_HP2;
FETCH CUR_JK_HP2 INTO @yks_id
WHILE @@FETCH_STATUS=0
BEGIN
exec Syncdata_insert_Hypertesionperson @yks_id;
FETCH NEXT FROM CUR_JK_HP2 INTO @yks_id;
END;
CLOSE CUR_JK_HP2;
DEALLOCATE CUR_JK_HP2;
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值