游标实例

今天写了一个游标,但是不知道怎么在这游标里定义一个变量来记录执行时影响条数,并插入两条数据时就跳出循环结束游标。

没有想出辙,实属头疼。附代码如下:

--游标

declare @userID uniqueidentifier--userid

declare y_curr cursor for

select top 2 userID from Hope_Users_db.dbo.u_Users order by addTime desc



open y_curr --打开游标

fetch next from y_curr into @userID ----开始循环游标变量

while(@@fetch_status=0)---返回被FETCH  语句执行的最后游标的状态,而不是任何当前被连接打开的游标的状态。

begin

	   if exists (select * from Q_enterprise where userID = @userID)

		  begin

		     print @userID

		  end

		else

		  begin

			   print @userID

			   insert into Q_enterprise

			   select distinct u.userID, u.userType,u.SyncCharityId as CharityId,u.userTrueName,u.userLogo,0 as donationAmount,e.enterpriseContactMobile,

			   e.enterprisePurpose,0 as enterpriseLongitude,0 as enterpriseLatitude,'' as Infoproportion,0 as sharesum,0 as praisesum,

			   0 as Donationsum,0 as Farvritessum,0 as Donationsum30,u.addTime,'' as updatetime

			   from Hope_Users_db.dbo.u_Users u

			   inner join Hope_Donation_DB.dbo.d_Donation d

			   on u.userID=d.userID

			   inner join Hope_Users_db.dbo.u_Enterprise e

			   on u.userID = e.userID

			   where u.userID=@userID

		  end

      fetch next from y_curr into @userID --开始循环游标变量

end

close y_curr--关闭游标

deallocate y_curr --释放游标

go

  

你可能感兴趣的:(游标)