Código de SQL - Generar diccionario de una tabla

sin imagen de perfil

Generar diccionario de una tablagráfica de visualizaciones


SQL

Publicado el 13 de Abril del 2011 por Roger Bermudez (6 códigos)
12.167 visualizaciones desde el 13 de Abril del 2011
Comendos de SQL Server para mostrar los campos de una tabla con sus respectivos tipos, valores y descripción.
Similar al "show table" de MySQL.
Para SQL Server 2000 en adelante.

Versión 1
estrellaestrellaestrellaestrellaestrella(2)

Publicado el 13 de Abril del 2011gráfica de visualizaciones de la versión: Versión 1
12.168 visualizaciones desde el 13 de Abril del 2011
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
declare @table varchar(50)
set @table = 'TableName'
SELECT
	Columna,
	[Description] as Descripcion,
	Tipo,
	--cname,
	Tamaño
 
FROM
(
SELECT
	so.name AS Tabla,
	sc.name AS Columna,
	st.name AS Tipo,
	st.collation_name as cname,
	sc.max_length AS Tamaño,
	SC.column_id CID
FROM	sys.objects so
	INNER JOIN sys.columns sc ON so.object_id = sc.object_id
	INNER JOIN sys.types st ON
		st.system_type_id = sc.system_type_id
		AND st.name != 'sysname'
 
WHERE so.type = 'U' and so.name = @table
 
--ORDER BY so.name,sc.name
 
)DICCIONARIO
INNER JOIN
(
	SELECT
		 [TableName] = i_s.TABLE_NAME,
		 [ColumnName] = i_s.COLUMN_NAME,
		 [Description] = s.value
	FROM  INFORMATION_SCHEMA.COLUMNS i_s
		LEFT OUTER JOIN  sys.extended_properties s	ON
			s.major_id = OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME)
			AND s.minor_id = i_s.ORDINAL_POSITION
			AND s.name = 'MS_Description'
	WHERE OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0
		 AND i_s.TABLE_NAME = @table
--	ORDER BY i_s.TABLE_NAME, i_s.ORDINAL_POSITION
)diccionario2 ON
  Tabla = diccionario2.[TableName] AND Columna = [ColumnName]
ORDER BY CID



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

24 de Mayo del 2011
estrellaestrellaestrellaestrellaestrella
Hola, he estado haciendo esta consulta y no genera, nada.
Que tipo de problema tiene?!!!
saludos
Responder
16 de Junio del 2011
estrellaestrellaestrellaestrellaestrella
A mi me funciona correctamente lo he probado en SQL2008 y SQL2005 adunto consulta completa a ver si hay algun error de publicacion.

declare @table varchar(50)
set @table = 'Articulos'
SELECT
Columna,
[Description] as Descripcion,
Tipo,
--cname,
Tamaño

FROM
(
SELECT
so.name AS Tabla,
sc.name AS Columna,
st.name AS Tipo,
st.collation_name as cname,
sc.max_length AS Tamaño,
SC.column_id CID
FROM sys.objects so
INNER JOIN sys.columns sc ON so.object_id = sc.object_id
INNER JOIN sys.types st ON
st.system_type_id = sc.system_type_id
AND st.name != 'sysname'

WHERE so.type = 'U' and so.name = @table

--ORDER BY so.name,sc.name

)DICCIONARIO
INNER JOIN
(
SELECT
[TableName] = i_s.TABLE_NAME,
[ColumnName] = i_s.COLUMN_NAME,
[Description] = s.value
FROM INFORMATION_SCHEMA.COLUMNS i_s
LEFT OUTER JOIN sys.extended_properties s ON
s.major_id = OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME)
AND s.minor_id = i_s.ORDINAL_POSITION
AND s.name = 'MS_Description'
WHERE OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0
AND i_s.TABLE_NAME = @table
-- ORDER BY i_s.TABLE_NAME, i_s.ORDINAL_POSITION
)diccionario2 ON
Tabla = diccionario2.[TableName] AND Columna = [ColumnName]
ORDER BY CID
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/s2055