Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как не показать результаты процедуры?  [new]
Postolachi Serghei
Member

Откуда: Молдавия
Сообщений: 167
Добрый день.

Есть такие процедуры

CREATE PROCEDURE [dbo].testpr_1
		@r INT = NULL OUT
AS
    SET NOCOUNT ON;
    
    SELECT 'r1' AS cx;
    
    SELECT 1 AS c1, '2' AS c2, 3 AS c3, '4' AS c4
    
    SET @r = 11;
	
GO

-- ------------------------------------------------

CREATE PROCEDURE [dbo].testpr_2
AS
    SET NOCOUNT ON;
    
    DECLARE @rez INT;
    
    EXEC dbo.testpr_1 @r = @rez OUT;
    
    SELECT @rez AS result;
	
GO


Так вот при выполнении второй процедуры

EXEC dbo.testpr_2


Показывает и результаты первый процедуре. Можно как-то их не показывать?

Изменять код testpr_1 нельзя.

Спасибо и удачного дня.
22 авг 14, 15:31    [16480616]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Postolachi Serghei
Показывает и результаты первый процедуре.

Сервер ничего не показывает. Показывает клиентское приложение.
Переписывайте процедуры так, чтобы они возвращали только нужные вам данные.
22 авг 14, 15:36    [16480668]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
Postolachi Serghei,

первый запрос еще можно перехватить через insert exec, но второй никак вы не экранируете.
22 авг 14, 15:37    [16480674]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
Postolachi Serghei
Member

Откуда: Молдавия
Сообщений: 167
А как можно добавить результаты процедуры в любой переменной если первая процедура возвращает две таблицы?
22 авг 14, 15:39    [16480698]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
Postolachi Serghei
Member

Откуда: Молдавия
Сообщений: 167
WarAnt,

Мне и только первый и надо перехватить, но там две таблицы...
22 авг 14, 15:41    [16480711]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
Postolachi Serghei
Member

Откуда: Молдавия
Сообщений: 167
В 2012 это можно сделать примерно так

CREATE PROCEDURE [dbo].testpr_2
AS
    SET NOCOUNT ON;
    
    DECLARE @rez INT;
    
    EXEC dbo.testpr_1 @r = @rez OUT;
    WITH RESULT SETS NONE
    
    SELECT @rez AS result;
	
GO


А для 2008 есть какая то альтернатива для "WITH RESULT SETS NONE"?
22 авг 14, 16:42    [16481126]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
daw
Member

Откуда: Муром -> Москва
Сообщений: 7381
Postolachi Serghei
В 2012 это можно сделать примерно так
А для 2008 есть какая то альтернатива для "WITH RESULT SETS NONE"?


на самом деле, немного не так: если при exec установлена эта опция, и процедура попытается вернуть какой-то результат, то будет ошибка выдана.
22 авг 14, 18:13    [16481618]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
Postolachi Serghei
Member

Откуда: Молдавия
Сообщений: 167
Спасибо за Ваши ответы. Сделал по другому.
22 авг 14, 20:49    [16482096]     Ответить | Цитировать Сообщить модератору
 Re: Как не показать результаты процедуры?  [new]
ApXyC
Member

Откуда: Пенза
Сообщений: 75
Postolachi Serghei
Спасибо за Ваши ответы. Сделал по другому.


Может поделитесь как, а то получается тема раскрыта не до конца. Спасибо.
28 авг 14, 14:33    [16507154]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить