gpt4 book ai didi

sql-server - 使用 SQL "Messages" Pane 的结果

转载 作者:行者123 更新时间:2023-12-04 06:10:26 26 4
gpt4 key购买 nike

我有一个现有的 SQL 2005 存储过程,出于某种原因,它在 SSMS 的消息 Pane 而不是结果 Pane 中输出其结果。 (它实际上是一个CLR程序,已经编译并部署到我们所有的服务器上,并用于另一个日常流程。所以我无法更改它,我只想使用它的输出。)

为了便于讨论,这里有一个行为相同的存储过程:

CREATE PROCEDURE [dbo].[OutputTest] 
@Param1 int, @Param2 varchar(100)
AS
BEGIN
SET NOCOUNT ON;
PRINT 'C,10000,15000';
PRINT 'D,30000,90000';
PRINT 'E,500,50000';
END

因此其中没有实际的 SELECT 语句,如果您运行它,您将仅在“消息” Pane 中看到这些结果。

有什么方法可以让我使用这些结果作为更大查询的一部分吗?将它们放在临时表或其他东西中,以便我可以解析它们?

“正常的东西”都不起作用,因为这里没有真正的“输出”:

INSERT INTO #output
EXEC OutputTest 100, 'bob'

只是展示

C,10000,15000
D,30000,90000
E,500,50000

(0 row(s) affected)

在消息 Pane 中,临时表实际上没有放入任何内容。

最佳答案

您可以从 C# 代码执行存储过程吗?如果是这样,您可能能够连接到名为 SqlInfoMessage 的 SqlCommand 事件:

SqlConnection _con = new SqlConnection("server=.;
database=Northwind;integrated Security=SSPI;");

_con.InfoMessage += new SqlInfoMessageEventHandler(_con_InfoMessage);

事件处理程序如下所示:

static void _con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
string myMsg = e.Message;
}

“e.Message”是打印到 SQL Server Mgmt Studio 消息窗口的消息。

虽然它不会很漂亮并且可能需要一些丑陋的解析代码,但我希望至少您可以通过这种方式获取这些消息!

马克

关于sql-server - 使用 SQL "Messages" Pane 的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1195324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com