Obtendo a quantidade de registros em tabelas de um Banco de Dados

Dicas de Microsoft SQL Server

Obtendo a quantidade de registros em tabelas de um Banco de Dados

Obtendo a quantidade de registros em tabelas de um Banco de Dados SQL Server

Para obter a quantidade de registros nas tabelas de um Banco de Dados utilize a instrução abaixo:

 

DECLARE @nome_da_tabela varchar(40)
DECLARE meu_cursor CURSOR FOR
SELECT table_name FROM information_schema.tables WHERE table_type=’BASE TABLE’
OPEN meu_cursor
FETCH NEXT FROM meu_cursor
INTO @nome_da_tabela
WHILE @@FETCH_STATUS = 0
BEGIN
EXECUTE (‘SELECT ”’ + @nome_da_tabela + ”’ AS Tabela, COUNT(*) AS [Total de Registros] FROM ‘ + @nome_da_tabela)
FETCH NEXT FROM meu_cursor
INTO @nome_da_tabela
END
CLOSE meu_cursor
DEALLOCATE meu_cursor
GO

 

Compartilhe esta matéria
  ,


3 Comentários em “Obtendo a quantidade de registros em tabelas de um Banco de Dados

  1. Pingback: Obtendo a quantidade de registros das tabelas de um banco de dados

  2. Bom eu utilizei este seu script porém não consegui o resultado, porém eu consegui criar uma procedure que trás os valores então caso ajude quem possa entrar neste topico futuramente.

    ~Script~

    CREATE PROCEDURE [dbo].[TABREG]
    @TABELA CHAR(8)
    AS
    BEGIN
    /****** Author: Thiago de Lima Santos ******/
    /**
    Script verifica se o valor estiver diferente de branco ele informar a partir da tabela informada ao executar,
    caso esteja branco ele verifica todos os valores encontrados no banco.
    **/
    DECLARE @VALOR INT,@CONTADOR INT
    DECLARE @NOME_TABELA CHAR(8)
    DECLARE @COMANDO NVARCHAR(1000)
    DECLARE @QUANTIDADE VARCHAR(50)

    SET @CONTADOR = 1
    IF @TABELA = ”
    BEGIN
    DECLARE CUR CURSOR FOR SELECT table_name FROM information_schema.tables WHERE table_type=’BASE TABLE’
    OPEN CUR
    FETCH NEXT FROM CUR INTO @NOME_TABELA;
    WHILE @@FETCH_STATUS = 0
    BEGIN
    SET @COMANDO = ‘SELECT @VALOR = (COUNT(*)) FROM ‘+@NOME_TABELA
    EXEC SP_EXECUTESQL @COMANDO,N’@VALOR INT OUT’,@VALOR OUTPUT
    SET @QUANTIDADE = (SELECT @VALOR)
    PRINT ‘| ID: ‘+IIF(LEN(CAST(@CONTADOR AS VARCHAR(10)))=1,’00’+CAST(@CONTADOR AS VARCHAR(10)),(IIF(LEN(CAST(@CONTADOR AS VARCHAR(10)))=2,’0’+CAST(@CONTADOR AS VARCHAR(10)),CAST(@CONTADOR AS VARCHAR(10)))))+’ | TABELA: ‘+@NOME_TABELA+’ | QUANTIDADE DE REGISTROS: ‘+@QUANTIDADE
    SET @CONTADOR = @CONTADOR + 1
    FETCH NEXT FROM CUR INTO @NOME_TABELA;
    END
    CLOSE CUR;
    DEALLOCATE CUR;
    END
    ELSE
    BEGIN
    SET @NOME_TABELA = (SELECT table_name FROM information_schema.tables WHERE table_type=’BASE TABLE’ AND table_name = @TABELA)
    SET @COMANDO = ‘SELECT @VALOR = (COUNT(*)) FROM ‘+@TABELA
    EXEC SP_EXECUTESQL @COMANDO,N’@VALOR INT OUT’,@VALOR OUTPUT
    SET @QUANTIDADE = (SELECT @VALOR)
    PRINT ‘| ID: ‘+IIF(LEN(CAST(@CONTADOR AS VARCHAR(10)))=1,’00’+CAST(@CONTADOR AS VARCHAR(10)),(IIF(LEN(CAST(@CONTADOR AS VARCHAR(10)))=2,’0’+CAST(@CONTADOR AS VARCHAR(10)),CAST(@CONTADOR AS VARCHAR(10)))))+’ | TABELA: ‘+@NOME_TABELA+’ | QUANTIDADE DE REGISTROS: ‘+@QUANTIDADE
    END
    END

    ~Fim Script~

    Para executar a procedure utilize o comando abaixo

    EXEC TABREG ”

    caso informado em em branco como ta ele fará a busca de todas as tabelas, no meu caso meu banco de dados contém apenas tabelas com até tamanho de 8 caracteres caso o seu tenha mais aumente o tamanho das variaveis @TABELA e @NOME_TABELA

    para verificar o tamanho utilize a consulta abaixo

    SELECT max(len(table_name)) FROM information_schema.tables WHERE table_type=’BASE TABLE’

    espero ter ajudado.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *