Мне нужно сравнить длину определения и фактическое значение в SQL.Получить максимальную длину каждого столбца динамически SQL
Например:
+--------------|---------------------|-------------+
COLUMN_NAME | DefinitionMaxLength |ActualLength
+--------------|---------------------|-------------+
COL 1 | 20 | 25
COL 2 | 30 | 26
Вот мой SQL для получения метаданных таблицы.
SELECT COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH AS DefinitionMaxLength
from INFORMATION_SCHEMA.COLUMNS as COL
WHERE COL.DATA_TYPE ='varchar' AND COL.TABLE_NAME='TableSRC'
Моя проблема теперь в том, как получить максимальную длину фактической таблицы. Я использовал Max(Len(COLUMN_NAME))
, но это не сработает.
SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_MAXIMUM_LENGTH AS DefinitionMaxLength, MAX(LEN(COLUMN_NAME))
from INFORMATION_SCHEMA.COLUMNS as COL
WHERE COL.DATA_TYPE ='varchar' AND COL.TABLE_NAME='TableSRC'
COLUMN_NAME
основан на выходе метаданных.
Я использую SQL Server. – MMakati