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

Откуда: Lithuania
Сообщений: 7007
В SP1 вызываю SP2. Возможно ли в SP2 узнать кто её вызвал (и далее кто вызвал SP1) ?
9 мар 15, 11:04    [17360024]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
нет
9 мар 15, 12:50    [17360187]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
guest x
Guest
Winnipuh,
А если глянуть через план выполнения ?
9 мар 15, 13:26    [17360290]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
guest x
Winnipuh,
А если глянуть через план выполнения ?


Вопрос стоит так:

"Возможно ли в SP2 узнать кто её вызвал"
9 мар 15, 13:47    [17360354]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
CREATE PROCEDURE usp_One
AS
BEGIN
  PRINT 'My name is ' + OBJECT_NAME(@@PROCID)
  PRINT 'A name of the caller: ' + CAST(CONTEXT_INFO() AS VARCHAR)
END
GO

CREATE PROCEDURE usp_Two
AS
BEGIN
  DECLARE @procedureName VARBINARY(MAX) = CAST(OBJECT_NAME(@@PROCID) AS VARBINARY(MAX))
  
  SET CONTEXT_INFO @procedureName
  
  EXECUTE usp_One
END
GO

EXECUTE usp_Two
GO

DROP PROCEDURE usp_One
DROP PROCEDURE usp_Two
GO
9 мар 15, 14:01    [17360389]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
Cheerful Calf
и далее кто вызвал SP1?
Логируйте в каждой процедуре куда-нибудь
OBJECT_NAME(@@PROCID)

и будет Вам счастье.
9 мар 15, 14:07    [17360402]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
skyANA
Cheerful Calf
и далее кто вызвал SP1?
Логируйте в каждой процедуре куда-нибудь
OBJECT_NAME(@@PROCID)


и будет Вам счастье.
Почему не просто @@PROCID?
9 мар 15, 16:52    [17360708]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4893
Cheerful Calf,

Объясните вашу цель. Зачем вам надо это знать.

Если вы запустите профайлер и будете ловить Sp Statements в момент вашего вызова, то можете потом сохранить трассу в таблицу и сделать выборку по номеру сессии, таким образом определить последовательность вызовов.
9 мар 15, 16:54    [17360712]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
a_voronin
Cheerful Calf,

Объясните вашу цель. Зачем вам надо это знать.

Если вы запустите профайлер и будете ловить Sp Statements в момент вашего вызова, то можете потом сохранить трассу в таблицу и сделать выборку по номеру сессии, таким образом определить последовательность вызовов.


если процедура А вызвана из Б, тогда одно поведение, иначе другое
9 мар 15, 18:33    [17360953]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
iap
skyANA
пропущено...
Логируйте в каждой процедуре куда-нибудь
OBJECT_NAME(@@PROCID)


и будет Вам счастье.
Почему не просто @@PROCID?
Можно и просто @@PROCID, тогда OBJECT_NAME() в запросе надо будет указывать, чтобы увидеть название процедуры.

Можно и первое, и второе. Тут уж пусть ТС решает.
9 мар 15, 22:10    [17361817]     Ответить | Цитировать Сообщить модератору
 Re: Как узнать высвана ли SP из другой SP ?  [new]
Cheerful Calf
Member

Откуда: Lithuania
Сообщений: 7007
skyANA,

Спасибо большое, помогло.

В каждой процедуре логировать не могу - доступ только к своим процедурам.
9 мар 15, 23:48    [17362127]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить