明飞的技术园地

笨鸟先飞
  博客园  :: 新随笔  :: 联系 :: 管理

游标中使用动态sql语句

Posted on 2007-11-20 20:33  明飞  阅读(1409)  评论(0编辑  收藏  举报
/*
 add by mingfei 20071120
    通过传入的参数来组成sql语句,使用游标循环读出
    注意:在自定义函数中不能这样使用,自定义函数不支持
*/
CREATE PROCEDURE dbo.GetZYFZR
  @XMBH nvarchar(6),
 @ZY nvarchar(10)
 
AS
 declare @RETURN nvarchar(2000)
 declare @TABLERY nvarchar(9)
 declare @XM nvarchar(20)
 declare @SQL nvarchar(200)
 set @RETURN=""
 set @TABLERY="k"+@XMBH+"RY"
 --print @TABLERY
 set @SQL="declare XM_CURSOR cursor for select XM from "+@TABLERY+" where zy='"+@ZY+"' and rylb='03'"
 exec sp_executesql  @SQL
 open  XM_CURSOR
 fetch next from XM_CURSOR into @XM
 while @@fetch_status=0
 begin
  --print @XM
  select @RETURN=@RETURN+ltrim(rtrim(@XM))+" "
  fetch next from  XM_CURSOR into @XM
 end
 close  XM_CURSOR
 deallocate  XM_CURSOR
 select ltrim(rtrim(@RETURN))
GO