Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как получить запрос по таблицам, которые выдаются в запросе в виде varchar имен? Можно ли?  [new]
_Промешан_
Member

Откуда:
Сообщений: 970
Сразу уточню, что данный вопрос не есть вся задача, но задача разовая и обсуждать это смысла наверное не особо много.

Пример:
Есть запрос, который, условно, выдает список таблиц. Список не уникален, то есть таблицы могут повторяться.
В списке присутствует 4 колонки:
PK таблицы, имя этой таблицы, FK в другой таблице (join по имени поля), имя этой таблицы.

Необходимо к каждой таблице обратиться и получить количество элементов по полю, которое выдано в третьем столбце.

Возможно ли такое в одном запросе, без курсора?

exec sp_executesql увы не биндится))
28 май 12, 14:45    [12626078]     Ответить | Цитировать Сообщить модератору
 Re: Как получить запрос по таблицам, которые выдаются в запросе в виде varchar имен? Можно ли?  [new]
_Промешан_
Member

Откуда:
Сообщений: 970
Но, однако, может быть есть какието настройки сервера, которые разрешат подобное выполнение? Что то вроде Quoted_identifier, хотя это и не совсем то..
28 май 12, 14:54    [12626150]     Ответить | Цитировать Сообщить модератору
 Re: Как получить запрос по таблицам, которые выдаются в запросе в виде varchar имен? Можно ли?  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
_Промешан_
Возможно ли такое в одном запросе, без курсора?
Нет, если я правильно понял вопрос.
29 май 12, 02:23    [12629031]     Ответить | Цитировать Сообщить модератору
 Re: Как получить запрос по таблицам, которые выдаются в запросе в виде varchar имен? Можно ли?  [new]
Jaffar
Member

Откуда:
Сообщений: 633
Mind,

declare @SQL varchar(max)
set @SQL = ''

select @SQL = @SQL + SSS + char(13)+char(10)
select distinct 'union all select '''+name+''', count(distinct '+name+') from '+name +' with(nolock)' SSS
from( 
--- здесь у тебя твой запрос
select ID, name, FK_NAME, name2 from /*sys.objects o with(nolock)*/ 
) t

exec(@SQL)
30 май 12, 10:11    [12635525]     Ответить | Цитировать Сообщить модератору
 Re: Как получить запрос по таблицам, которые выдаются в запросе в виде varchar имен? Можно ли?  [new]
_Промешан_
Member

Откуда:
Сообщений: 970
Jaffar, как это должно работать?

select @SQL = @SQL + SSS + char(13)+char(10)
30 май 12, 12:54    [12636701]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить