2016-11-03 89 views
0

我目前正在使用存储过程来执行一些后台进程,然后返回两个结果表中的一个。抑制SQL Server 2008 R2及更高版本中存储过程的输出

如果工作正常,我会得到一个表示成功的列表,如果没有,那么我会得到一个包含各种错误数据的四列表。

虽然这很好,如果你只是从.net执行代码,我现在需要在另一个存储过程中执行此操作。虽然我不需要输出,但我确实需要后台进程。我通常会将输出插入到表中,但在此情况下不能输出,因为输出中的列取决于结果,因此无法定义它可以插入的表。

最简单的答案是重写后台SP的输出以保持一致,但这不是一个选项。我甚至尝试在UDF中包装这个,但存储过程不能用函数调用。

什么解决方案,我终于用它必须从SQL Server 2008 R2版本上工作到2016年

没有任何人有什么建议吗?

非常感谢,

垫。

+0

如果程序有一个select语句(很明显这是一个),你不能根据它调用它的行为有所不同。您可以根据参数的值更改过程的行为,但当然这需要更改过程和新参数。 –

回答

1

我想像一下,你可以创建一个SP,使用下面的hack将内部SP的结果插入临时表中。

Insert results of a stored procedure into a temporary table

如果块的输出中,那么你可以不返回数据。

+0

我和那个链接上的OP有同样的问题,这个问题是基于这样一个事实,即当定义发生变化时,我无法事先定义表格。 –

+0

我也不能使用打开行设置选项,因为它将在多个不同的服务器上运行。并且缺少将连接字符串存储在数据库中的某个地方,导致与之相关的固有安全风险,我有点卡住了。 –

+0

我对此投票,因为我认为它会帮助一些人,但它还没有完全解决我的问题。非常感谢。 –

相关问题