Как получить список параметров внутри самой хранимой процедуры - PullRequest
3 голосов
/ 07 февраля 2012

Я знаю, что легко выйти наружу как:

select * from sys.parameters
where object_id in 
      (select object_id from sys.procedures where name = 'YourSProc')

Но если у меня есть SP, у которого есть необязательный параметр со значением по умолчанию, как я могу узнать, установлен ли параметр на самом деле, если значение параметра== значение параметра по умолчанию?

как

create procedure sp1
@userid=1,
@passwd=null,
as
bla..bla
Go

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

exec sp1 @userid=1, @passwd=null

или

exec sp2 @userid=2

Существует ли глобальная переменная типа @@ paramlist, которая может предоставить список параметров?

1 Ответ

1 голос
/ 07 февраля 2012

Не совсем то, что вы ищете, но что, если вместо значения по умолчанию, равного нулю, вы устанавливаете по умолчанию какое-то маловероятное и секретное значение часового - возможно, GUID. Затем вы проверили бы в своем SP, был ли параметр установлен в GUID, что означало бы, что параметр был по умолчанию, или установлен в любое другое значение, в этом случае пользователь предоставил его.

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