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

sin imagen de perfil

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


SQL

Publicado el 10 de Septiembre del 2003 por Karin Moya
48.829 visualizaciones desde el 10 de Septiembre del 2003
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
48.830 visualizaciones desde el 10 de Septiembre del 2003
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)

28 de Noviembre del 2003
estrellaestrellaestrellaestrellaestrella
Por favor quisiera que me embies mas detalles...............
chau ......................
Responder
1 de Junio del 2004
estrellaestrellaestrellaestrellaestrella
Muy bueno. Gracias
Responder
21 de Enero del 2005
estrellaestrellaestrellaestrellaestrella
Buen trabajo
Responder
9 de Febrero del 2006
estrellaestrellaestrellaestrellaestrella
Ha realizado una valoración negativa de este curso.
Responder
7 de Julio del 2006
estrellaestrellaestrellaestrellaestrella
Me fue útil
Responder
7 de Septiembre del 2006
estrellaestrellaestrellaestrellaestrella
Muy buen procedimiento me fue de mucha ayuda
Responder
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
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
25 de Julio del 2008
estrellaestrellaestrellaestrellaestrella
Muy bueno el Codigo!!!!!

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

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

Gcias
Responder
22 de Noviembre del 2011
estrellaestrellaestrellaestrellaestrella
Muchisimas gracias me sacaste de un apuro ... 10 points
Responder
14 de Diciembre del 2011
estrellaestrellaestrellaestrellaestrella
Excelente query. Gracias por compartirlo me ayudo mucho.
Responder
1 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...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s794