Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 общий count(*) от одной таблицы из идентичных БД  [new]
any1
Member

Откуда:
Сообщений: 3
Добрый день! Есть сервер Х, на нем абсолютно идентичные по структуре БД с шаблонными именами office_1, office_2, office_2.1, office_3 и тд. Как создать единый суммирующий запрос (например, select count(*) from *.dbo.users) по всем БД?
Можно ли обойтись без написания ХП?

Спасибо
13 май 15, 18:02    [17636128]     Ответить | Цитировать Сообщить модератору
 Re: общий count(*) от одной таблицы из идентичных БД  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20600
Если полный список БД не определён и должен быть получен программно, никуда ты от ХП не денешься...
13 май 15, 18:05    [17636139]     Ответить | Цитировать Сообщить модератору
 Re: общий count(*) от одной таблицы из идентичных БД  [new]
any1
Member

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

вот нашел, кстати!

http://dev.net.ua/blogs/denisreznik/archive/2009/08/20/8772.aspx

недокументированная процедура SQL Server - sp_msforeachdb, которая позволяет выполнять T-SQL код на всех БД сервера.
13 май 15, 18:08    [17636155]     Ответить | Цитировать Сообщить модератору
 Re: общий count(*) от одной таблицы из идентичных БД  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
declare @t table (cnt int);

insert into @t
 exec sp_MSforeachdb 'use ?; if db_name() like ''office%'' and object_id(''dbo.users'', ''U'') is not null exec(''select count(*) from dbo.users'');'

select sum(cnt) from @t;
13 май 15, 18:14    [17636194]     Ответить | Цитировать Сообщить модератору
 Re: общий count(*) от одной таблицы из идентичных БД  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31439
any1
Можно ли обойтись без написания ХП?

Akina
Если полный список БД не определён и должен быть получен программно, никуда ты от ХП не денешься...
Откуда такие выводы, может, ссылочку на документацию покажите? :-)

Всё, что можно сделать в ХП, можно сделать и без ХП. Вот обратное как раз неверно.
13 май 15, 20:45    [17636703]     Ответить | Цитировать Сообщить модератору
 Re: общий count(*) от одной таблицы из идентичных БД  [new]
any1
Member

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

спасибо, именно этим и воспользовался
13 май 15, 22:05    [17636991]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить