Мне нужно запросить полный тип столбцов столбцов, в конечном итоге с указанием длины.Query full column datatypes MSSQL
Если я использую INFORMATION_SCHEMA.COLUMNS или sp_Columns (@tablename) я получаю тип, размер, и цифры в разных колонках, и я должен декодировать каждый тип данных с сазом.
Я написал такой запрос, но он не очень твердый, и я не уверен, что он всегда прав. Я надеюсь, что есть способ извлечь весь тип столбца в один столбец.
Вот мой запрос, и я до сих пор расшифровать много типов:
select
a.TABLE_SCHEMA,
a.TABLE_NAME,
COLUMN_NAME,
case
when CHARACTER_MAXIMUM_LENGTH is not null then DATA_TYPE+'('+convert(varchar, CHARACTER_MAXIMUM_LENGTH)+')'
when DATA_TYPE in ('int','datetime','time','date','text') then DATA_TYPE
when DATA_TYPE in ('decimal','numeric') then DATA_TYPE+'('+convert(varchar,NUMERIC_PRECISION) +','+ convert(varchar,NUMERIC_SCALE) +')'
else ''
end as FULL_DATA_TYPE
from INFORMATION_SCHEMA.COLUMNS a
inner join INFORMATION_SCHEMA.TABLES b
on b.TABLE_NAME = a.TABLE_NAME
and b.TABLE_SCHEMA = a.TABLE_SCHEMA
and b.TABLE_TYPE = 'BASE TABLE'
Нет, потому что я получаю, как 'ДАННЫЕ int (4) 'или' decimal (13) '. В SQLServer 'declare @V int (4)' является синтаксической ошибкой, а decimal (13) не извлекают цифры точности. – Radioleao