SoloCodigo

Bases de Datos => SQL Server => Mensaje iniciado por: martisho en Jueves 18 de Junio de 2009, 12:10

Título: Generar modelo de datos
Publicado por: martisho en Jueves 18 de Junio de 2009, 12:10
Hola a todos,

trabajo con SQL Server Express 2005, desde Visual Studio 2008 y a veces con el SQl Server Management y ya he creado las tablas de mi base de datos, lo que me gustaría ahora es obtener un documento que me especifique cada tabla con su descripcion, sus columnas y el tipo de dato de cada columna. No se si hay alguna opcion desde Visual Studio o desde SQL Server Management.

Ej:

Usuario

--Comentario de lo que quiere decir usuario--

Usuario_ID     int
Nombre          varchar
.
.
.
.

Esto es lo que quiero

Por favor ayudenmeee
Título: Re: Generar modelo de datos
Publicado por: arielb en Sábado 20 de Junio de 2009, 18:18
Hola, lo que buscas se llama diccionario de datos.
puedes hacer sp_help nombredelatabla

y hay herramientas para esto también, que te lo generan en un documento.

http://www.codeplex.com/datadictionary

http://consejosdelguru.blogspot.com/2009/05/generar-diccionario-de-datos-sql-server.html

http://msdn.microsoft.com/en-us/library/ms186778.aspx

espero te sirva
Título: Re: Generar modelo de datos
Publicado por: martisho en Martes 23 de Junio de 2009, 09:59
Hola,muchas gracias por tu respuesta.

Cuando dices que puedo hacer sp_help nombredelatabla, me puedes explicar como lo hagp y donde?

Muchas gracias por ayudarme.
Título: Re: Generar modelo de datos
Publicado por: syricardo en Martes 23 de Junio de 2009, 15:18
hola
         si lo que queres es solo ver la información; te va a servir el sp_help, la sintaxis es, por ejemplo:
         
Código: SQL
  1. sp_help tProveedores
  2.  
        sin embargo, si lo que vos queres hacer es obtener un listado (por ejemplo para utilizarlo dentro de un store), vas a tener que utilizar consultas sobres las tablas de sistemas, por ejemplo, la consulta siguiente, t obtiene el nombre de la tabla, seguido de sus campos y las descripciones que tengas estos campos

Código: SQL
  1. SELECT
  2.     s.name AS Tabla,
  3.     s2.name AS Columna,s2.xtype,
  4.     CASE s2.xtype
  5.         WHEN 127 THEN 'BigInt'
  6.         WHEN 56 THEN 'Int'
  7.         WHEN 167 THEN 'VarChar'
  8.         WHEN 61 THEN 'DateTime'
  9.         WHEN 52 THEN 'SmallInt'
  10.         ELSE 'Tipo sin descripcion (Cod: ' + CONVERT(VARCHAR, s2.xtype) + ')' END AS tipo,
  11.     isnull(s3.VALUE, 'Sin descripcion') AS Descripcion
  12. FROM sysobjects s
  13. INNER JOIN syscolumns s2 ON s2.id = s.id
  14. LEFT JOIN sysproperties s3 ON s3.id = s2.id AND s3.smallid = s2.colid
  15. WHERE s.xtype = 'U' AND s.name = 'tProveedores'
  16.  

toda la información que veas en el management o en cualquier otra herramienta de acceso a la base de datos estan en las tablas de sistemas (sysobjects, syscolumns, etc.)

saludos