2014-09-23 1 views
-1

만약 당신이 다음과 같이 알고 있다면 : select * from INFORMATION_SCHEMA.COLUMNSCHARACTER_MAXIMUM_LENGTH이라는 열을 볼 수 있습니다. 그러나 나는이 테이블을이 테이블에서 가져오고 싶지 않습니다. 왜냐하면이 테이블을 sys.columns 또는 sys.tables과 같이 고유하게 조인 할 수 없기 때문입니다. sys 데이터베이스 내부의 테이블에서 CHARACTER_MAXIMUM_LENGTH을 얻을 수있는 방법이CHARACTER_MAXIMUM_LENGTH - SQL Server 2008 (IINFORMATION_SCHEMA.COLUMNS의 항목이 아님)

있습니까 :

그래서 여기 내 질문?

다른 말로 표현하면 sys.SOME_TABLE에서 실행할 수있는 SELECT 문이 있으니 을 SOME_TABLE에서 반환하겠습니까?

또 다시 INFORMATION_SCHEMA 데이터베이스를 사용할 수 없습니다. 그러므로 "INFORMATION_SCHEMA 안에 CHARACTER_MAXIMUM_LENGTH를 줄 수있는 테이블이 있습니다"라고 대답하지 마십시오.

CHARACTER_MAXIMUM_LENGTHsys 데이터베이스에서 제공해야합니다.

도움을 주신 모든 분들께 감사드립니다.

+0

'sys.types'? 'user_type_id'에'sys.columns '에 가입하십시오. – Laurence

답변

1

sys.types 테이블의 테이블은 max_length입니다. 이것은 유형에 대해 최대 정의 길이를 제공합니다. sys.columnsuser_type_id을 통해 가입 할 수 있습니다.

이 경우 sys.columns.max_length은 테이블 열이 정의 된 길이를 제공합니다. 따라서 varchar(30)의 경우이 값은 이지만, varchar의 최대 정의 길이는 8000입니다.