Microsoft SQL Server 2008을 사용하고 있습니다. 저장 프로 시저가 있습니다. 저에게 매개 변수 이름을 줄 수있는 간단한 쿼리가 있습니까?저장 프로 시저의 매개 변수 이름 찾기
나는이 Link을 발견했지만 마이크로 소프트의 SQL 서버를위한 아닙니다 2008 년
Microsoft SQL Server 2008을 사용하고 있습니다. 저장 프로 시저가 있습니다. 저에게 매개 변수 이름을 줄 수있는 간단한 쿼리가 있습니까?저장 프로 시저의 매개 변수 이름 찾기
나는이 Link을 발견했지만 마이크로 소프트의 SQL 서버를위한 아닙니다 2008 년
이 쿼리를 사용할 수있는 이름 만 얻을 :
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')
, 당신은 또한 프로그래밍 방식 .NET 라이브러리에 DeriveParameters 방법을 사용하여 검색 할 수 있습니다 : http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommandbuilder.deriveparameters.aspx
데이터베이스 파일과 개체에 대한 내 블로그를 확인하십시오. 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
오래된 시스템 저장 프로 시저 sp_sproc_columns입니다.
-- Older system stored proc - show all parameters to one
sp_sproc_columns @procedure_name = 'SP_STORE_PRIMES'
go
두 가지 방법으로 원하는 곳으로 이동할 수 있습니다.
'WHERE OBJECT_ID = OBJECT_ID ('YourProcedureName') ' –
나는이 몇 가지 문제가 발생하고 있습니다. 나는 'SELECT * FROM sys.parameters;'라고 말하도록 변경했지만 0 행을 반환합니다. 어떤 아이디어? – user489041
@ user489041 - sys.parameters에서 모든 레코드를 선택하고 레코드 수를 0으로 설정하면 해당 쿼리를 실행중인 데이터베이스 *에서 만든 매개 변수가있는 저장 프로 시저가 없다고 생각하게됩니다 . –