T-SQL 2005: подавить вывод набора результатов - PullRequest
0 голосов
/ 06 февраля 2009

У меня есть несколько хранимых процедур, которые используются для генерации отчетов. Я пытаюсь создать панель отчетов, которая будет показывать, сколько записей в каждом отчете.

SP приведены в таблице, в которой указано, в каком порядке их следует запускать.

У меня есть SP панели инструментов, в котором я использую Cursor для просмотра таблицы базы данных, выполнения каждого отчета SP, а затем сохраняю @@ rowcount во временной таблице, которая составляет основу панели мониторинга.

Я могу отключить счетчик строк, используя set rowcoun в верхней части каждого SP, но не могу найти способ остановить восстановление набора результатов из команды EXEC sp_my_sp.

WHILE @@FETCH_STATUS = 0
BEGIN
    declare @x as int
    exec @SP_name @x OUT
    select @x
    insert into @results (Short___name,Records) values (@shortname,@x)
    FETCH NEXT FROM myCursor INTO @ShortName, @SP_Name,@Group,@Order
END 

Где-то там мне нужно подавить или перенаправить вывод. Я не хочу делать это внутри фактического отчета SP.

Единственное решение, которое я до сих пор предлагал, - это добавить входной параметр к каждому SP, чтобы указать, выполняется ли он для панели мониторинга или для отчета. Вместо того, чтобы возвращать набор результатов напрямую, вставьте его в таблицу в памяти и затем сообщите таблицу в памяти ONLY , если мы работаем за отчетами - не очень хорошо, поскольку кто-то должен помнить, чтобы сделать это для каждый новый SP

ТИА

Obiron

1 Ответ

1 голос
/ 08 февраля 2009

Я могу придумать одно возможное решение, но я не уверен, что оно особенно элегантное (или то, что вы ищете).

Расширяя идею входного параметра для SP, не могли бы вы просто добавить некоторую логику (оператор CASE или IF) для вызова Select Count () над сценарием, когда он поступает из панели мониторинга?

Это потребовало бы добавления к каждому SP, но если оно задокументировано, это не должно вызывать слишком много проблем для будущих разработчиков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...