Есть ли способ сделать это с помощью t-sql без использования курсора или цикла или временных таблиц? Может быть, используя динамический sql?Найти значение из определенных столбцов во всех таблицах в базе данных - динамический sql?
Я хочу получить максимальное значение из первого столбца каждой таблицы в базе данных.
Я использую syscolumns, чтобы показать мне имена всех таблиц и имя первого столбца в каждой таблице.
Итак, в приведенном ниже примере (нерабочем) мне нужно найти способ цикла через syscolumns и использовать все значения для @tabname и @colname. Есть ли способ сделать это?
declare @tabname sysname;
declare @colname sysname;
SELECT
name as [column name],
object_NAME(id) as [table name],
(select max(@colname) from @tabname) as [max col value]
from syscolumns
where colorder = 1
Любая помощь или советы оценены.
С уважением, Дейв.
Какое странное требование. Какое фактическое использование может обеспечить это? Чтобы получить максимальное значение из первого столбца в каждой таблице, потребуется динамический sql. Ответ, предложенный Kannan ниже, отлично справляется с получением имен столбцов. Вам нужно будет расширить это с помощью динамического sql, чтобы получить ваши значения. –
Спасибо Шон. Да, требования других народов всегда очень странны, когда они показаны вне контекста на форуме, подобном этому. К сожалению, я не могу подробно остановиться на контексте из соображений безопасности. У меня есть все имена столбцов и имена таблиц, используя мой очень простой начальный запрос syscolumns, где colorder = 1 (см. Его в ответе, который я дал Kannan.) – davehants