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

Откуда: Омск
Сообщений: 38
Задача следующая: есть в структуре БД таблица(служебная) с названиями и описанием основных рабочих таблиц самой базы, нужно получить данные о названии, описании и количестве строк основных таблиц, описанных в служебной.
Как я понимаю для решения этой задачи нужно использовать динамический запрос для получения количества строк и временную таблицу для вывода результата. Только как правильно это написать в ХП или можно всё решить просто запросом? Если где-то уже описано решение подобной задачи, дайте ссылку, пожалуйста.
15 окт 13, 09:52    [14970909]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
sys.partitionы join [Ваша служебная]
15 окт 13, 09:57    [14970944]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Анна Карасикова
Member

Откуда: Омск
Сообщений: 38
нет это "служебная" относиться именно к базе, не к системным таблицам
15 окт 13, 10:00    [14970966]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Анна Карасикова
нет это "служебная" относиться именно к базе, не к системным таблицам

и?! в чём проблема заджойнить Вашу таблицу с системным представлением sys.partitions !?
15 окт 13, 10:01    [14970970]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Анна Карасикова
нет это "служебная" относиться именно к базе, не к системным таблицам

А вы хоть сделали запрос к sys.partitions прежде,чем это написать ?
15 окт 13, 10:03    [14970982]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Анна Карасикова
Member

Откуда: Омск
Сообщений: 38
проблема в том, что я в MS SQL новичок и задачу срочно решить надо, вот и обратилась к специалистам
15 окт 13, 10:05    [14971007]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Анна Карасикова
проблема в том, что я в MS SQL новичок и задачу срочно решить надо, вот и обратилась к специалистам

И что вас тогда не устривает в совете использовать sys.partitions ?
15 окт 13, 10:07    [14971017]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10233
Блог
Анна Карасикова
проблема в том, что я в MS SQL новичок и задачу срочно решить надо, вот и обратилась к специалистам


курите:

use tempdb
go
if object_id ( 'dbo.t1', 'U' ) is not null
drop table dbo.t1
go
create table dbo.t1 ( id int identity )
go
if object_id ( 'dbo.t2', 'U' ) is not null
drop table dbo.t2
go
create table dbo.t2 ( id int identity )
go
insert into dbo.t1
default values
go 5

insert into dbo.t2
default values
go 10


if object_id ( 'dbo.[Моя служебная таблица]', 'U' ) is not null
drop table dbo.[Моя служебная таблица]
go
create table dbo.[Моя служебная таблица] ( object_schema_name sysname, object_name sysname )
go
insert into dbo.[Моя служебная таблица]
values ( 'dbo', 't1' )
     , ( 'dbo', 't2' )
go

select object_schema_name ( p.object_id ) + '.' + object_name ( p.object_id ) as obj
    , sum( rows ) rows 
  from sys.partitions p 
    inner join dbo.[Моя служебная таблица] s
      on p.object_id = object_id ( s.object_schema_name + '.' + s.object_name, 'U' )
  where index_id < 2
  group by p.object_id
go


результат:

obj        rows
---------- --------------------
dbo.t1 5
dbo.t2 10
15 окт 13, 10:09    [14971033]     Ответить | Цитировать Сообщить модератору
 Re: Как получить в табличном виде данные о количестве строк в таблицах БД?  [new]
Анна Карасикова
Member

Откуда: Омск
Сообщений: 38
Knyazev Alexey, Большое Спасибо!!!
И Glory - спасибо.
15 окт 13, 10:13    [14971049]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить