Funcion en sql que me permita contar los registros de todas las tablas de una base de datos
Publicado por Ruben Sanchez (3 intervenciones) el 26/08/2018 20:17:18
Hola la idea que tengo es crear un procedimiento almacenado que me permita conocer el tamaño en registros de mi base de datos.
Mi idea es comparar estos numeros entre dos bases de datos para saber si estan iguales.
Ya hice la consulta pero no se como pasarle un parametro a una consulta ejecutada con exec. desde un procedimiento almacenado.
Esta es la consulta que tengo hasta ahora que solo me arroja la informacion por tablas separadas yo quiero que los numero se acumulen en un contador y a final del proceso mostrarlo.
Mi idea es comparar estos numeros entre dos bases de datos para saber si estan iguales.
Ya hice la consulta pero no se como pasarle un parametro a una consulta ejecutada con exec. desde un procedimiento almacenado.
Esta es la consulta que tengo hasta ahora que solo me arroja la informacion por tablas separadas yo quiero que los numero se acumulen en un contador y a final del proceso mostrarlo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE dbo.ContarRegistrosTablas
AS
DECLARE @table_schema nvarchar(100)=''
DECLARE @table_name nvarchar(100)
DECLARE @query nvarchar(500)
DECLARE @c int = 0
DECLARE RSCHEMA CURSOR FOR
select TABLE_SCHEMA,TABLE_NAME from INFORMATION_SCHEMA.TABLES where TABLE_TYPE = 'BASE TABLE'
ORDER BY TABLE_SCHEMA,TABLE_NAME
OPEN RSCHEMA
FETCH NEXT FROM RSCHEMA INTO @table_schema,@table_name
WHILE @@fetch_status = 0
BEGIN
select @query = 'SELECT COUNT(*) FROM '+@table_schema+'.'+@table_name
exec(@query)
--print @query
FETCH NEXT FROM RSCHEMA INTO @table_schema,@table_name
END
CLOSE RSCHEMA
DEALLOCATE RSCHEMA
Valora esta pregunta
0