SQL Server,取存储过程返回值。 20

1、SQLServer2008,用的数据库同步(主服务器发布,备服务器订阅)2、用下面存储过程查询结果:execsp_replmonitorhelppublication... 1、SQL Server 2008,用的数据库同步(主服务器发布,备服务器订阅)

2、用下面存储过程查询结果:

exec sp_replmonitorhelppublication NULL;;
3、在结果集中,我想取出status字段的值。

附加说明:
1、sp_replmonitorhelppublication存储过程无法修改;
2、sql脚本内容如下:
use distribution;

create table #tmp_publicationdata
(
publisher_db sysname
,publication sysname
,publication_id int
,publication_type int
,status int -- publication status defined as max(status) among all agents
,warning int -- publication warning defined as max(isnull(warning,0)) among all agents
,worst_latency int
,best_latency int
,average_latency int
,last_distsync datetime -- last sync time
,retention int -- retention period
,latencythreshold int
,expirationthreshold int
,agentnotrunningthreshold int
,subscriptioncount int -- # of subscription
,runningdistagentcount int -- # of running agents
,snapshot_agentname sysname null
,logreader_agentname sysname null
,qreader_agentname sysname null
,worst_runspeedPerf int
,best_runspeedPerf int
,average_runspeedPerf int
,retention_period_unit tinyint
) ;
INSERT INTO #tmp_publicationdata exec sp_replmonitorhelppublication NULL;
exit(select status from #tmp_publicationdata;)

3、我需要在.bat文件中,调用脚本并判断返回值,但偶尔会报错:

消息 8164,级别 16,状态 1,服务器 WIN-TOBTEG3RM98,过程 sp_MSload_tmp_replicati
on_status,第 80 行
INSERT EXEC 语句不能嵌套。

求方法。谢谢!
展开
 我来答
叛逆尊0529
2014-05-30 · 超过57用户采纳过TA的回答
知道答主
回答量:128
采纳率:100%
帮助的人:110万
展开全部
如果返回标量值的话,例如文章的个数,可以使用储存过程的输出(OUTPUT)参数。在定义存储过过程时为参数指定OUTPUT关键字。C#调用存储过程时指定参数SqlParameter对象的Direction属性为Output。

如果是返回多个结果集的话,可以直接在存储过程中使用多个select查询就行。在C#代码中使用SqlDataReader对象的NextResult方法提取下一个结果集。
请采纳答案,支持我一下。
追问
如果用C#等其它编程方法的话,还用这么麻烦?
随便用个Query控件,执行存储过程,就可以把结果集取出来了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式