Código de SQL - Información de Tablas de BD en SQL Server

Información de Tablas de BD en SQL Servergráfica de visualizaciones


SQL

estrellaestrellaestrellaestrellaestrella(17)
Publicado el 10 de Septiembre del 2003 por Karin Moya
46.006 visualizaciones desde el 10 de Septiembre del 2003. Una media de 70 por semana
Es un store procedure que muestra todas las tablas de la BD donde se le ejecute. No importa que las tablas tenga un owner propio, igual las muestra. Para SQL Server

Versión 1
estrellaestrellaestrellaestrellaestrella(17)

Publicado el 10 de Septiembre del 2003gráfica de visualizaciones de la versión: Versión 1
46.007 visualizaciones desde el 10 de Septiembre del 2003. Una media de 70 por semana
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
if exists (select * from sysobjects where id = object_id('dbo.p_sizetables') and sysstat & 0xf = 4)
	drop procedure dbo.p_sizetables
GO
create procedure dbo.p_sizetables
as
Begin transaction
/**************Procedimiento creado por KM para ver el tamaño de las tablas de una base de datos*/
SET NOCOUNT ON
declare @nombre_tabla varchar(100)
declare @propietario varchar(40)
declare @uid int
declare @nombre_completo varchar(150)
declare @nombre_db varchar(256)
 
create table #resultados
(nombre varchar(50),
 filas decimal(12,0),
 reservado varchar(40),
 data varchar(40),
 tamaño_indice varchar(20),
 no_usado varchar(20))
 
declare tablas cursor
for select a.uid , propietario = left( b.name,40), tabla =  a.name from sysobjects a, sysusers b
where type = 'U' and a.uid = b.uid  order by tabla
 
select @nombre_db = db_name()
 
OPEN tablas
FETCH NEXT FROM tablas into @uid, @propietario, @nombre_tabla
WHILE @@FETCH_STATUS = 0
BEGIN
    if @uid = 1
    begin
          insert #resultados    
          exec sp_spaceused @nombre_tabla
    end
    else
        begin
         SET @nombre_completo = rtrim(ltrim(@nombre_db))+'.' + ltrim(rtrim(@propietario)) +'.'+ @nombre_tabla
          insert #resultados    
          exec sp_spaceused @nombre_completo
       end
    FETCH NEXT FROM tablas INTO @uid, @propietario, @nombre_tabla
END
 
CLOSE tablas
DEALLOCATE tablas
 
select * from #resultados
order by filas desc
 
Commit Transaction



Comentarios sobre la versión: Versión 1 (17)

Renzo LCX
28 de Noviembre del 2003
estrellaestrellaestrellaestrellaestrella
Por favor quisiera que me embies mas detalles...............
chau ......................
Responder
Maria
01 de Junio del 2004
estrellaestrellaestrellaestrellaestrella
Muy bueno. Gracias
Responder
Marco A. Siller
21 de Enero del 2005
estrellaestrellaestrellaestrellaestrella
Buen trabajo
Responder
rafaael
09 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
Ha realizado una valoración negativa de este curso.
Responder
...ø§k...
07 de Julio del 2006
estrellaestrellaestrellaestrellaestrella
Me fue útil
Responder
alexander
07 de Septiembre del 2006
estrellaestrellaestrellaestrellaestrella
Muy buen procedimiento me fue de mucha ayuda
Responder
Gabriel
23 de Enero del 2007
estrellaestrellaestrellaestrellaestrella
En realidad es bueno encontrar codigo de este tipo, que funcionen tan bien y sea lo que se busca... Gracias
Responder
Ivan Rangel
26 de Febrero del 2008
estrellaestrellaestrellaestrellaestrella
Se anexa una pequeña variación del Stored para poder ver los resultados en GB, espero les sea util.

if exists (select * from sysobjects where id = object_id('dbo.p_sizetables') and sysstat & 0xf = 4)
drop procedure dbo.p_sizetables
GO
create procedure dbo.p_sizetables
as
Begin transaction
/**************Procedimiento creado por KM para ver el tamaño de las tablas de una base de datos*/
SET NOCOUNT ON
declare @nombre_tabla varchar(100)
declare @propietario varchar(40)
declare @uid int
declare @nombre_completo varchar(150)
declare @nombre_db varchar(256)

create table #resultados
(nombre varchar(50),
filas decimal(12,0),
reservado varchar(40),
data varchar(40),
tamaño_indice varchar(20),
no_usado varchar(20))

declare tablas cursor
for select a.uid , propietario = left( b.name,40), tabla = a.name from sysobjects a, sysusers b
where type = 'U' and a.uid = b.uid order by tabla

select @nombre_db = db_name()

OPEN tablas
FETCH NEXT FROM tablas into @uid, @propietario, @nombre_tabla
WHILE @@FETCH_STATUS = 0
BEGIN
if @uid = 1
begin
insert #resultados
exec sp_spaceused @nombre_tabla
end
else
begin
SET @nombre_completo = rtrim(ltrim(@nombre_db))+'.' + ltrim(rtrim(@propietario)) +'.'+ @nombre_tabla
insert #resultados
exec sp_spaceused @nombre_completo
end
FETCH NEXT FROM tablas INTO @uid, @propietario, @nombre_tabla
END

CLOSE tablas
DEALLOCATE tablas

SELECT
nombre ,
filas ,
'Reservado(GB)' = CAST(((CAST(REPLACE(reservado,'KB','')AS NUMERIC(19,0)) /1024)/1024) AS NUMERIC(19,2)) ,
'Data(GB)' = CAST(((CAST(REPLACE(data,'KB','')AS NUMERIC(19,0)) /1024)/1024) AS NUMERIC(19,2)) ,
'Indice(GB)' = CAST(((CAST(REPLACE(tamaño_indice,'KB','')AS NUMERIC(19,0)) /1024)/1024) AS NUMERIC(19,2)) ,
'No usado(GB)' = CAST(((CAST(REPLACE(no_usado,'KB','')AS NUMERIC(19,0)) /1024)/1024) AS NUMERIC(19,2))
FROM #resultados
ORDER BY FILAS DESC

Commit Transaction

Responder
mauro
25 de Julio del 2008
estrellaestrellaestrellaestrellaestrella
Muy bueno el Codigo!!!!!

Gracias.
Responder
pedro
30 de Julio del 2008
estrellaestrellaestrellaestrellaestrella
muy bueno, me sirvio a la perfeccion, deberia venir incluido este sp en el sql

muchas gacias!!
Responder
Carlos
12 de Noviembre del 2010
estrellaestrellaestrellaestrellaestrella
EXCELENTE TU STORED CORRE INCLUSO EN 2008...MUCHAS GRACIAS
Responder
Jesica
03 de Junio del 2011
estrellaestrellaestrellaestrellaestrella
Gracias!!!! Muy bueno!
Responder
Juan
26 de Agosto del 2011
estrellaestrellaestrellaestrellaestrella
Excelente, que bueno que hay gente chingona y que aparte comparte sus conocimientos.. saludos
Responder
Gaston Rodrigo
12 de Septiembre del 2011
estrellaestrellaestrellaestrellaestrella
Me sirvió mucho y ya lo guarde entre los SP mas usados.-

Gcias
Responder
Kemper
22 de Noviembre del 2011
estrellaestrellaestrellaestrellaestrella
Muchisimas gracias me sacaste de un apuro ... 10 points
Responder
MERS
14 de Diciembre del 2011
estrellaestrellaestrellaestrellaestrella
Excelente query. Gracias por compartirlo me ayudo mucho.
Responder
DanielMiquele
01 de Marzo del 2013
estrellaestrellaestrellaestrellaestrella
Excelente, claro y funcional. Genio !
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios

http://lwp-l.com/s794