Имам съществуваща съхранена процедура на SQL 2005, която по някаква причина извежда резултатите си в панела Съобщения в SSMS вместо панела Резултати. (Всъщност това е 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 и ако изпълните това, ще видите тези резултати само в панела Съобщения.
Има ли някакъв начин да използвам тези резултати като част от по-голямо запитване? Да ги поставя във временна таблица или нещо подобно, за да мога да ги анализирам?
Нито едно от „нормалните неща“ не работи, защото тук няма истински „изход“:
INSERT INTO #output
EXEC OutputTest 100, 'bob'
просто показва
C,10000,15000
D,30000,90000
E,500,50000
(0 row(s) affected)
в панела за съобщения и временната таблица всъщност не получава нищо, поставено в нея.