执行存储过程出错

wjfxyj 2012-05-24 08:40:14
执行存储过程出错
CREATE procedure xs_gzxx
@TableName varchar(30)
as
exec('select count(*) as zts from ['+ @TableName + ']')
exec('select count(*) as yts from ['+ @TableName + '] where rgl>0')
exec('select count(*) as wts from ['+ @TableName + '] where rgl=0')
GO
在查询分析器执行
declare @TableName varchar(30) set @TableName='F2201252'
得到zts,yts,wts
一切正常
在 vb6.0 command按钮中执行
sjsrGrade.rsDK1 "declare @TableName varchar(30) set @TableName='F2201252'"
text1.text=str(sjsrGrade.rs1!zts)
text2.text=str(sjsrGrade.rs1!yts)
text3.text=str(sjsrGrade.rs1!wts)
只能显示第一条zts
后面二条出错信息为:
实时错误‘3265’
在对应所需名称或序数的集合中,未找到项目
...全文
116 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
人生无悔 2012-05-24
  • 打赏
  • 举报
回复

CREATE procedure xs_gzxx
@TableName varchar(30)
as
if object_id('tempdb..#t') is not null drop table #t
create table #t(zts int,yts int,wts int)
declare @sql nvarchar(max)
select @sql='insert #t(zts) select (select count(1) from '+@TableName+');
update #t set yts=(select count(1) from '+@TableName+' where rgl>0);
update #t set wts=(select count(1) from '+@TableName+' where rgl=0);'
exec(@sql)
select * from #t
go
wjfxyj 2012-05-24
  • 打赏
  • 举报
回复
也就是分3个存储过程来写。
放在一个存储过程不行吗。
人生无悔 2012-05-24
  • 打赏
  • 举报
回复
你选出来的是三行嘛,当然是错了,应该是三个记录集才对呀,而不是一个记录集中的三条记录。。。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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