Jul 25 2011

#QuickTip 4 - [SQL Server] Como executar um select count em todas as tabelas de uma base de dados

Category: QuickTip | SQL ServerSuzuki @ 14:06

Olá pessoal,
Após um tempo sem postar, volto com uma dica que talvez seja útil.
Estou usando meu SQL Server 2005 Express e o Management Studio.
Como fazer um count em todas as tabelas da nossa base de dados?


Eu nesta semana me deparei com uma situação destas onde precisava saber as quantidades de registros de cada tabela da minha base de dados.
Esta é uma terefa simples, vou mostrar 2 modos de se fazer isso:

  1. Script
    1. SELECT SO.NAME      AS 'TABLENAME',    
    2.        MAX(SI.ROWSAS 'ROWCOUNT'  
    3.   FROM SYSOBJECTS SO JOIN SYSINDEXES SI ON SI.ID = OBJECT_ID(SO.NAME)    
    4.  WHERE SO.XTYPE = 'U'    
    5.  GROUP BY SO.NAME    
    6.  ORDER BY 'ROWCOUNT' DESC  
  2. Script
    1. CREATE TABLE #COUNT (_TABLE VARCHAR(100), _COUNT INT)   
    2. GO   
    3. SP_MSFOREACHTABLE 'INSERT INTO #COUNT SELECT ''?'', COUNT(*) FROM ?'  
    4. SELECT * FROM #COUNT    
    5. DROP TABLE #COUNT   

Referente a este segundo script a stored procedure SP_MSFOREACHTABLE irá executar o comando para cada tabela da base de dados.
Não encontrei um link da MSDN ou de alguem pra dar uma referência boa.
Então sobre a documentação da SP_MSFOREACHTABLE, recomendo vocês executarem um SP_HELPTEXT passando ela como parametro e lá você poderá ver o que ela faz, dentro da proc logo no inicio terá o seguinte comentário:

/* This proc returns one or more rows for each table (optionally, matching @where), with each table defaulting to its own result set */

Então em breve darei mais algumas dicas a respeito desta proc, que nos permite fazer algumas coisas bem interessantes.
Até a próxima.

Humilhai-vos perante o Senhor, e ele vos exaltará. (Tiago 4:10)

Share or Bookmark this post…

Tags: , , , ,

Kommentare

1.
trackback DotNetKicks.com says:

[SQL Server] How to execute a select count to all tables of a database

You've been kicked (a good thing) - Trackback from DotNetKicks.com

2.
trackback Ninja Code says:

#QuickTip 5 - [SQL Server] Como consultar o tamanho da tabela no banco de dados

#QuickTip 5 - [SQL Server] Como consultar o tamanho da tabela no banco de dados

Voeg kommentaar By


(Sal you Gravatar ikone vertoon)

  Country flag

biuquote
  • Opmerkings
  • Voorskou
Loading