Мне нужно убедиться, что все столбцы, содержащие имена пользователей, имеют максимальную длину в 140 символов. Я довольно новичок в SQL, и мне любопытно, как вы это сделаете.Искать все таблицы для столбца И вернуть максимальную длину для столбцов
Я начинаю с возврата списка всех таблиц, содержащих соответствующие имена столбцов. В то же время я хотел бы также увидеть ограничения персонажей для этих столбцов. Вот что у меня есть до сих пор, кроме того, что я не знаю, как создать переменную, которая будет заполнять как части столбца, так и длину запроса. Я использую SQL Server 2008.
SELECT
t.name AS 'Table Name',
c.name AS 'Column Name',
max(len(%COLUMN_NAME%)) AS 'Max Length'
FROM sys.tables AS t
INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID
WHERE c.name LIKE '%COLUMN_NAME%'
ORDER BY 'Table Name'
Решено. Благодаря!
Если вы новичок в sql, я задаюсь вопросом, почему вам нужен такой apporach. Почему бы вам не выбрать правильный столбец (и) соответствующих таблиц, а не использовать 'sys.tables'? –
Вам нужна максимально возможная длина значения столбца (которая также присутствует в 'sys.columns') или длина самого длинного фактического значения (что требует построения динамического запроса)? –
@TimSchmelter У нас есть много таблиц и немало возможных вариантов имен столбцов. Мне нужно найти экземпляр «userid», например, а также каждый экземпляр «changedby», «modifiedby», «% verbed% by» ... Я регулярно использую запрос, чтобы найти подходящие таблицы, но я взяв это за опыт, чтобы добавить число символов max в запрос. Я думаю, может быть, эта техника будет полезна для других типов запросов в будущем. – Defpotec2020