테이블 값 함수에서 테이블 반환 스키마를 가져 오는 방법이 있습니까?테이블 값 함수에 대한 정보 얻기
지금 내가 하나의 아이디어,
SELECT ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
을 실행하고 함수 쿼리를 구문 분석해야하지만 그렇지 gread 생각이다. :/
테이블 값 함수에서 테이블 반환 스키마를 가져 오는 방법이 있습니까?테이블 값 함수에 대한 정보 얻기
지금 내가 하나의 아이디어,
SELECT ROUTINE_SCHEMA,
ROUTINE_NAME,
ROUTINE_DEFINITION
FROM INFORMATION_SCHEMA.ROUTINES
을 실행하고 함수 쿼리를 구문 분석해야하지만 그렇지 gread 생각이다. :/
당신은 INFORMATION_SCHEMA.ROUTINE_COLUMNS
예로부터 정보를 얻을 수 있습니다
SELECT *
FROM INFORMATION_SCHEMA.ROUTINE_COLUMNS
WHERE TABLE_NAME = 'YourTableValuedFunctionName'
여기 AdaTheDev의 접근 방식은 더 나은 미래 SQL 자료에 침입 가능성이 없습니다, 그냥 참고로 ... 이전 시스템 테이블을 사용하여 접근이다.
select so.name,sc.name,st.name,sc.length,sc.*
from sysobjects so
join syscolumns sc on sc.id=so.id
join systypes st on st.xtype=sc.xtype
where so.xtype='TF' and sc.name not like '@%'
order by 1,colid
information_schema.routines는 함수 자체에 대한 기본 정보를 얻는 데 가장 선호되는 방법입니다. AdaTheDev가 말했듯이, information_schema.routine_columns는 컬럼에 대한 정보를 얻는 가장 좋은 장소입니다.
시스템 테이블에서 정보를 파고들 수는 있지만 더 많은 노력이 필요하며 향후 릴리스에서는 변경되지 않는 시스템 테이블에 포함될 수 없습니다. 하지만 당신은 당신이 원 수 있다면 :
select * from sys.columns
where object_id = object_id(N'fnc_Document_GetInfoByIndex')
(이 예는 SQL 서버 2008입니다)