quarta-feira, 8 de setembro de 2010

Dica: Número de linhas afetadas por um comando SQL

Quando executamos comandos de SELECT/INSERT/UPDATE/DELETE sobre tabelas ou Views em um banco de dados SQL Server, o número de linhas afetadas pelo comando é registrado no console do Management Studio (ou Query Analyzer até a versão 2000).

Entretanto, existem casos em que este número pode ser importante para a lógica de uma aplicação, ou mesmo para decidir se uma tarefa foi executada com sucesso ou não.

Assim, o SQL Server permite recuperar esta informação através da variável @@ROWCOUNT. A cada execução de comando, esta variável é atualizada e passa a conter o número de linhas afetadas pelo comando executado.

Veja como utilizá-la no exemplo abaixo:

-- Criando tabela temporária para testar o uso de @@ROWCOUNT
CREATE TABLE #teste (id INT)      

-- Inserindo um único registro na tabela #teste
INSERT INTO #teste VALUES(0)           
SELECT @@ROWCOUNT 


-- Inserindo vários (3) registros na tabela #teste
INSERT INTO #teste VALUES(10),(20),(30)
SELECT @@ROWCOUNT


-- Selecionando todos os registros da tabela #teste
SELECT * FROM #teste                   
SELECT @@ROWCOUNT


-- Removendo tabela temporária
DROP TABLE #teste                

Veja o resultado da execução deste script na figura abaixo:


Um bom exemplo de aplicação para esta variável seria em uma Stored Procedure que realiza uma operação de insert/update/delete. Através dessa variável, pode-se criar uma validação para retornar o status da operação (sucesso/fracasso) baseado no número de linhas afetadas.

Um comentário:

Anônimo disse...

Valeu, era isso mesmo q eu precisava.

Postar um comentário