테이블, 테이블 반환 함수 (인라인, SQL 다중 문장 및 SQLCLR) 및 뷰와 마찬가지로 뷰는 sys.columns
시스템 카탈로그 뷰 (및 sys.all_columns
)에서 유지 관리됩니다.
SELECT obj.[name], obj.[type_desc], col.[name]
FROM sys.objects obj
INNER JOIN sys.columns col
ON col.[object_id] = obj.[object_id]
ORDER BY obj.[type_desc], obj.[name], col.[name];
완전한 데이터 유형 이름을 얻으려면 sys.types
에 가입해야합니다.
- (국회 내에서 SQLCLR 방법의 경우) T-SQL 래퍼 객체는 당신이 쓴 스크립트에 의해 생성 된 경우 :
그러나, 이후 당신이하고있는 사물을 스크립팅하는 아주 작은 지점이있다 그런 다음 CREATE
문이 이미 있고
- Visual Studio가 있거나없는 SSDT에서 T-SQL 래퍼 객체를 만든 경우 "생성"스크립트가 이미 생성되어있는 경우 (생성 된 것으로 선택한 경우) 각 빌드시) 및 증분 "게시"스크립트를 사용합니다.
두 경우 모두 이러한 개체는 이미 가지고있는 T-SQL 스크립트로 만들어졌습니다. 않는 한, 당신은 개체와 배포 스크립트를 가지고있는 데이터베이스를 어떤 이유로 든 사용할 수 없습니다.
C# 코드를 기반으로 func/proc의 T-SQL 정의를 만드는 데 사용할 수있는 도구가 있습니까?
데이터베이스 또는 DLL/어셈블리에서? 데이터베이스에서 모든 유형의 객체를 스크립팅하는 데 사용할 수있는 몇 가지 도구가 있습니다. .NET SMO 클래스를 사용하여 데이터베이스의 정의를 스크립트 아웃 할 수도 있습니다. DLL/어셈블리를 검사하려면 .NET Reflection 클래스를 사용하여 각 메서드를 반복하고 SqlFunction
, SqlProcedure
, SqlFacet
특성/데코레이터를 확인해야합니다.
> 어떤 이유로 든 배포 스크립트를 사용할 수 없습니다. – DueGe
Simple - thx :-) 두 번째 질문은 소스 코드 (C#) 또는 DLL을 말합니다. – DueGe