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
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:
Valeu, era isso mesmo q eu precisava.
Postar um comentário