Hola en este post explicare como obtener el numero de registros que nos arroja una consulta en SQLServer sin utilizar
la funcion count(*).

Muchas veces requerimos esta informacion para por ejemplo.

  • Mostrar el numero de registros afectados
  • Realizar paginaciones en algunos controles por ejemplo grids
  • etc.

para ello yo utilize la la variable @@RowCount, la cual tiene diferentes usos pero para este ejemplo me su funcionalidad sera darme los registros tras realizar una consulta a una tabla.

para poder usar esta funcion la sintaxis es la siguiente:


DECLARE @numeroRegistros AS INT

-- Evitamos que se devuelva el mensaje que muestra el recuento 
-- del número de filas afectadas por una instrucción 
-- como parte del conjunto de resultados. 

SET NOCOUNT ON 

SELECT * FROM [TU_TABLA]
-- realizamos la consulta a la tabla deseada

SET @numeroRegistros 
-- asignamos el valor de las filas afectadas a la variable declarada anteriormente

SET NOCOUNT OFF
-- le decimos que muestre los mensajes nuevamente

SELECT @numeroRegistros 
-- mostramos los registros

Espero les halla servido este post, cualquier duda o inquietud estoy a sus ordenes.

links de referencia:

SQL SERVER – Effect of SET NOCOUNT on @@ROWCOUNT


http://technet.microsoft.com/es-es/library/ms189837.aspx
http://technet.microsoft.com/es-es/library/ms187316.aspx