유형 (예 : nvarchar 또는 int)이 고정 길이인지 또는 일부 시스템 테이블을 쿼리하여 t-sql을 사용하여 런타임을 찾을 수 있습니까?t-sql의 유형이 고정 길이인지 여부 (런타임)를 찾는 방법은 무엇입니까?
이 작업을 수행하는 이유는 sql-code runtime을 생성해야하고 일부 열 (유형은 디자인 타임에 알 수 없음)에 따라 일부 선언 (DECLARE @foo SOMETYPE(LENGTH)
또는 DECLARE @foo SOMETYPE
)을 생성해야하기 때문입니다.
내 현재 내기는 sys.all_columns.max_length = sys.types.max_length
인지 확인하고 길이가 고정 길이라고 가정하면 (max_length
은 적어도 nvarchar의 경우 특수 코드 (-1)로 표시됨).
어떤 SQL Server 버전과 호환해야합니까? 일부 솔루션 (예 : information_schema.columns)은 SQL 2005 이상 버전에서만 작동합니다. –
SQL 2005 이상 나는 character-types, decimal-types, ints 등을 모두 이해할 수있는 선언을 생성하는 훌륭한 알고리즘을 찾을 수없는 것 같습니다. 단지 information_schema.columns.numeric_precision/numeric_scale/character_maximum_length를 확인하는 것 같지 않습니다. 충분 해. – finnsson