여기에 업데이 트 (해적판 일!)입니다 GalacticCowboy's answer의 (내가 생각하는) SQL 서버 2008R2 데이터 유형 모두를위한 몇 가지 문제 및 업데이트를 해결하기 위해 :
select data_type +
case
when data_type like '%text' or data_type in ('image', 'sql_variant' ,'xml')
then ''
when data_type in ('float')
then '(' + cast(coalesce(numeric_precision, 18) as varchar(11)) + ')'
when data_type in ('datetime2', 'datetimeoffset', 'time')
then '(' + cast(coalesce(datetime_precision, 7) as varchar(11)) + ')'
when data_type in ('decimal', 'numeric')
then '(' + cast(coalesce(numeric_precision, 18) as varchar(11)) + ',' + cast(coalesce(numeric_scale, 0) as varchar(11)) + ')'
when (data_type like '%binary' or data_type like '%char') and character_maximum_length = -1
then '(max)'
when character_maximum_length is not null
then '(' + cast(character_maximum_length as varchar(11)) + ')'
else ''
end as CONDENSED_TYPE
, *
from information_schema.columns
order by table_schema, table_name, ordinal_position
새로운 데이터 유형 중 일부가 아닌 새로운 날짜/시간 유형은 무엇입니까? 'time','datetime2' 그리고'datetimeoffset'는 모두 DATETIME_PRECISION 컬럼에서 찾을 수있는 소수 자릿수 초의 정밀도를 취할 수 있습니다. – MattW
@MattW 잘 잡으십시오, 나는 그 (것)들에 또한 datetime_precision를 포함하기 위하여 원본을 새롭게했습니다. 아마도 SQL Server 2016에서 모든 유형을 추가하는 작업을 할 것입니다. –