이 프로 시저를 사용하여 저장 프로 시저의 매개 변수 유형을 결정합니다.
select
'Parameter_name' = name,
'Type' = type_name(user_type_id),
'Length' = max_length,
'Prec' = case
when type_name(system_type_id) = 'uniqueidentifier'
then precision
else OdbcPrec(system_type_id, max_length, precision)
end,
'Scale' = OdbcScale(system_type_id, scale),
'Param_order' = parameter_id,
'Collation' = convert(sysname,
case when system_type_id in (35, 99, 167, 175, 231, 239)
then ServerProperty('collation') end)
from
sys.parameters
where
object_id = object_id('MySchema.MyProcedure')
그러나 매개 변수가 테이블 값이면 유형의 이름을 얻습니다.
'구조화 된'유형인지 어떻게 확인할 수 있습니까?
쿼리 sys.table_types
하거나 sys.types
데이터베이스의 모든 테이블 유형을 볼 수있는 경우 :
SELECT *
FROM sys.table_types;
SELECT *
FROM sys.types
WHERE is_table_type = 1;
system_type_id
모든 테이블 유형에 대해 동일 하다는 것을 알 수 있습니다 . 추출하여 쿼리에 사용할 수 있습니다. 다른 방법은 위의 정보를 테이블 변수 또는 임시 테이블에 저장하고 .NET Framework에 조인 (LEFT JOIN)하는 것 sys.parameters
입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다