2012-11-13 5 views
1

가능한 중복 :
How can I retrieve a list of parameters from a stored procedure in SQL Server저장 프로 시저에 매개 변수가 필요한지 어떻게 확인할 수 있습니까?

나는 일반적인 저장 프로 시저의 집행을 만들 다량 사용하고 있습니다. 기본적으로 프로 시저의 이름과 다양한 매개 변수를 사용하는 함수가 있습니다. 그런 다음 전달 된 매개 변수로 저장 프로 시저를 실행하려고 시도하고 그 결과를 반환하거나 오류를 처리합니다.

내 질문은 : 저장 프로 시저가 호출하기 전에 예상되는 매개 변수를 결정하는 방법이 있습니까?

+0

SQLMS에서 SP의 정의를보십시오. – MoonKnight

+1

sys.parameters를 보았습니까? object_id에서 sys.procedures를 조인 했습니까? –

답변

5

이 시도 :

SELECT 
    ProcedureName = pr.Name, 
    ParameterName = p.Name, 
    Typename = ty.name 
FROM 
    sys.parameters p 
INNER JOIN 
    sys.procedures pr ON p.object_id = pr.object_id 
INNER JOIN 
    sys.types ty ON p.user_type_id = ty.user_type_id 
WHERE 
    pr.Name = '.....' -- put your stored procedure name here 
ORDER BY 
    p.Name, p.parameter_id 

이 시스템 카탈로그 뷰를 조사하고 당신에게 주어진 프로 시저의 매개 변수와 그 유형을 표시합니다.

시스템 카탈로그 뷰에는 추가 정보 (예 : 매개 변수에 기본값이 있는지 여부 등)와 그 정보 (XML 매개 변수인지 여부 등)가 포함되어 있습니다. MSDN documentation for all details!

+0

그래서 이것을 방대한 양으로 실행해야하고 결과를 목록으로 확장해야 함을 의미합니까? – xdumaine

+0

@roviuser :이 SQL 쿼리는 필요한 정보를 얻을 것입니다 - 가져 오는 방법은 전적으로 여러분에게 달려 있습니다 ... –

+0

+1 param'is_output'과 선택 사항 ('has_default_value' = 1). 'is_readonly' 또한 TVP가 사용된다면 2008 년에도 유용 할 수 있습니다. –

관련 문제