У меня есть хранимая процедура 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)
на панели сообщений, а во временную таблицу на самом деле ничего не помещается.