sqlserver 怎么控制存储过程只返回一个结果集,注意不要多个只要一个?

xjx555 2008-07-30 09:24:20
存储过程中可能有多条返可以有返回结果集的语句,但是我只想要其中一个返回,其他语句只执行,不返回结果集
...全文
418 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwd252 2008-07-30
  • 打赏
  • 举报
回复
加个判断呢,需要的时候执行
zhou968 2008-07-30
  • 打赏
  • 举报
回复
楼主也可以考虑加个条件判断的语句,if……else来控制,需要哪个时就返回哪个。
wgzaaa 2008-07-30
  • 打赏
  • 举报
回复
另外:
exec 动态语句
exec 含返回数据集的存储过程
nzperfect 2008-07-30
  • 打赏
  • 举报
回复
呵呵
xjx555 2008-07-30
  • 打赏
  • 举报
回复
谢谢大家,我的疑问和顾虑源于我的无知,其实结果集已经在我的控制之中了,啥也不说给分
wgzaaa 2008-07-30
  • 打赏
  • 举报
回复
select @a
select 1,'abc'
--也会返回,
wgzaaa 2008-07-30
  • 打赏
  • 举报
回复
select * from
--不执行插入 select * into xx from
--不执行赋值 select @a=a from
hery2002 2008-07-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xjx555 的回复:]
to:hery2002
我有点明白了,那都什么样的语句会作为结果集返回来呢?
[/Quote]
形如这种的,
select * from myresult 

你前面一个语句是,
select @a='adfad' 
select @a='afsdff'

相当于set,对于变量赋值而已.
nzperfect 2008-07-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xjx555 的回复:]
to:hery2002
我有点明白了,那都什么样的语句会作为结果集返回来呢?
[/Quote]

你三楼的。
一品梅 2008-07-30
  • 打赏
  • 举报
回复
select @a='adfad'
select @a='afsdff'
只是设置变量而已,同set
xjx555 2008-07-30
  • 打赏
  • 举报
回复
to:hery2002
我有点明白了,那都什么样的语句会作为结果集返回来呢?
hery2002 2008-07-30
  • 打赏
  • 举报
回复
CREATE  PROCEDURE Pro_Set_Log AS 
BEGIN
declare @a varchar(10)
declare @b varchar(10)
select @a='adfad'
select @a='afsdff'
select * from myresult
END
GO

这样只会返回这个结果集的,
select * from myresult 
xjx555 2008-07-30
  • 打赏
  • 举报
回复
CREATE PROCEDURE Pro_Set_Log AS
BEGIN
declare @a varchar(10)
declare @b varchar(10)
select @a='adfad'
select @a='afsdff'
select * from myresult
END
GO

可能是这样
nzperfect 2008-07-30
  • 打赏
  • 举报
回复
sql server 还没有开发 set return record xx 功能。
只能尽可能的用其它方式去变通。
hery2002 2008-07-30
  • 打赏
  • 举报
回复
CREATE  PROCEDURE Pro_Set_Log AS 
BEGIN
select * from tab1
select * from tab2
select * from myresult
END
GO

那你前面这两句写出来是什么目的?
select * from tab1 
select * from tab2

是否可以去掉啦?
nzperfect 2008-07-30
  • 打赏
  • 举报
回复
sql server 没这功能。
xjx555 2008-07-30
  • 打赏
  • 举报
回复
CREATE PROCEDURE Pro_Set_Log AS
BEGIN
select * from tab1
select * from tab2
select * from myresult
END
GO

我想要最后一个结果集myresult,但前面两个也返回了,能控制不让前面两个返回吗?
nzperfect 2008-07-30
  • 打赏
  • 举报
回复
如果可返回记录的数目是固定的,可以在程序里有类似NextRecordset处理。
如果不固定,难了。
hery2002 2008-07-30
  • 打赏
  • 举报
回复
那么就return 你自己的就可以了,
其它的不用return,

22,209

社区成员

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

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