2011-09-09 7 views
3

Microsoft SQL Server 2008을 사용하고 있습니다. 저장 프로 시저가 있습니다. 저에게 매개 변수 이름을 줄 수있는 간단한 쿼리가 있습니까?저장 프로 시저의 매개 변수 이름 찾기

나는이 Link을 발견했지만 마이크로 소프트의 SQL 서버를위한 아닙니다 2008 년

답변

7

이 쿼리를 사용할 수있는 이름 만 얻을 :

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') 
+1

'WHERE OBJECT_ID = OBJECT_ID ('YourProcedureName') ' –

+0

나는이 몇 가지 문제가 발생하고 있습니다. 나는 'SELECT * FROM sys.parameters;'라고 말하도록 변경했지만 0 행을 반환합니다. 어떤 아이디어? – user489041

+0

@ user489041 - sys.parameters에서 모든 레코드를 선택하고 레코드 수를 0으로 설정하면 해당 쿼리를 실행중인 데이터베이스 *에서 만든 매개 변수가있는 저장 프로 시저가 없다고 생각하게됩니다 . –

2

데이터베이스 파일과 개체에 대한 내 블로그를 확인하십시오. http://craftydba.com/?p=2901

샘플 [MATH] 데이터베이스에 SP_STORE_PRIMES라는 저장 프로 시저가 있습니다.

한 가지 방법은 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

관련 문제