Найти имена параметров хранимой процедуры - PullRequest
3 голосов
/ 10 сентября 2011

Я использую Microsoft SQL Server 2008. У меня есть хранимая процедура. Можно ли выполнить простой запрос, который даст мне имена параметров?

Я нашел это Ссылка , но это не для Microsoft SQL Server 2008.

Ответы [ 3 ]

7 голосов
/ 10 сентября 2011

Чтобы получить только имена, вы можете использовать этот запрос:

SELECT name
FROM sys.parameters
WHERE object_id = OBJECT_ID('YourProcedureName')

Для получения более подробной информации (имя, тип и длина параметра):

SELECT p.name AS ParameterName, t.name AS ParameterType, p.max_length AS ParameterLength
FROM sys.parameters AS p
JOIN sys.types AS t ON t.user_type_id = p.user_type_id
WHERE object_id = OBJECT_ID('YourProcedureName')
2 голосов
/ 10 октября 2013

Проверьте мой блог о файлах и объектах базы данных.http://craftydba.com/?p=2901

У меня есть хранимая процедура SP_STORE_PRIMES в моей базе данных [MATH].

Один из способов - использовать таблицу sys.parameters.Это может быть дополнительно присоединено к типам.Ниже присоединяется к sys.objects.

-- Parameters to SP & FN
select o.name, p.* from sys.parameters p join sys.objects o
on p.object_id = o.object_id where is_ms_shipped = 0
go

enter image description here

Более старая системная хранимая процедура - sp_sproc_columns.

-- Older system stored proc - show all parameters to one
sp_sproc_columns @procedure_name = 'SP_STORE_PRIMES'
go

В обоих случаях вы окажетесь там, где выхочу пойти.

enter image description here

2 голосов
/ 10 сентября 2011

Помимо того, что сказал Марек, вы также можете получать их программно, используя метод DeriveParameters в библиотеке .NET: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.deriveparameters.aspx

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