Código de SQL - Generar diccionario de una tabla

Generar diccionario de una tablagráfica de visualizaciones


SQL

estrellaestrellaestrellaestrellaestrella(2)
Publicado el 13 de Abril del 2011 por Roger Bermudez
9.268 visualizaciones desde el 13 de Abril del 2011. Una media de 35 por semana
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
9.269 visualizaciones desde el 13 de Abril del 2011. Una media de 35 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
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)

monica
24 de Mayo del 2011
estrellaestrellaestrellaestrellaestrella
Hola, he estado haciendo esta consulta y no genera, nada.
Que tipo de problema tiene?!!!
saludos
Responder
Roger
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

http://lwp-l.com/s2055