的结果我有一个现有的SQL 2005的存储过程,由于某种原因,输出在SSMS代替结果窗格中的消息窗格中的结果。 (它实际上是一个已经编译并部署到我们所有服务器的CLR程序,并且用于另一个日常程序,所以我不能改变它,我只是想使用它的输出)。一个存储过程,其行为以同样的方式:使用SQL“消息”窗格
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
所以没有实际选择声明在那里,如果你运行它,你会看到只有在信息窗格中的所有结果。
有没有什么办法让我使用这些结果作为更大查询的一部分?把他们放在一个临时表或其他东西,所以我可以解析出来?
无的“正常的东西”的作品,因为没有真正的“输出”在这里:
INSERT INTO #output
EXEC OutputTest 100, 'bob'
只是表明
C,10000,15000
D,30000,90000
E,500,50000
(0 row(s) affected)
上的消息窗格
,并临时表没有按”实际上可以得到任何东西。
也许是正确的,但是如果它*可能,这个技术还有其他应用,比如在调整查询时解析出现在消息窗格上的“SET STATISTICS IO ON”的结果。 – BradC 2009-07-28 16:57:25
这是一个有趣的观点,但我认为解析是由客户端应用程序完成的,而不是由sql服务器完成的。是否有可能无法掌握CLR过程,解决问题并向服务器发布第二个版本,以便不影响该过程的现有消费者? – 2009-07-28 17:14:21