从游标中取数,被负值的变量数目不定。如何做

lulesheng1983 2003-08-25 07:38:39
from temp_cursor
into @pTemp1,@pTemp2,@pTemp3,@pTemp4,@pTemp5

into 后面的变量数目不一定,是根据另一个表中的记录取出来的。不过有一定规律的就是
@pTemp+i
...全文
70 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodboycwy 2003-08-28
  • 打赏
  • 举报
回复
建议不要用游标,游标效率不高又容易出错
blackbeetle 2003-08-28
  • 打赏
  • 举报
回复
declare @pTempi...... //这应该有个限制,不然没法写了
declare @Num,@i int
set @i=1
select @num=pTemp+i //获取个数
declare @str1,@str2 varchar(1000)
set @str1=''
set @str2=''
if @num=1 //当只有一个时,简单,就不写了
begin
end
else //当有多个变量时
begin
while(@i<@num)
begin
set @str1=@str1+'pTemp'+cast(@i as varchar)+','
set @str2=@str2+'@pTemp'+cast(@i as varchar)+','
set @i=@i+1
end
set @str1=@str1+'pTemp'+cast(@i as varchar)
set @str2=@str2+'@pTemp'+cast(@i as varchar)
end

exec('declare mycur cursor for select '+@str1+' from table1 ')
exec('fetch next from mycur into '+@str2)
你试试吧!
CrazyFor 2003-08-26
  • 打赏
  • 举报
回复
游标是肯定不支持这样的,你能不能每次都取你的最大变量数,最多让部份变量赋空值.
fayifu 2003-08-26
  • 打赏
  • 举报
回复
如果你能在定义游标这前程序能唯一确定字段数.你可以动态定义一字符串,在其中定义游标就可以了(其中字段名可通过循环写入),变量数就是循环控制条件.
liuyun2003 2003-08-26
  • 打赏
  • 举报
回复
你这个不太可能啊。你的游标如何定义啊??
hjb111 2003-08-26
  • 打赏
  • 举报
回复
如果你这种变量不定,你所要查询的字段如何确定呢?
linng 2003-08-26
  • 打赏
  • 举报
回复
建议不要用游标,游标效率不高又容易出错

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧