Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Query para obtener los campos de una tabla y su tipo - SQL Server

Estas en el tema de Query para obtener los campos de una tabla y su tipo - SQL Server en el foro de SQL Server en Foros del Web. Buenos días, Necesito obtener con una query los campos de una determinada tabla y su tipo con SQL Server. La tabla la consulto en Sysobjects: ...
  #1 (permalink)  
Antiguo 27/12/2010, 02:16
 
Fecha de Ingreso: agosto-2009
Mensajes: 104
Antigüedad: 14 años, 8 meses
Puntos: 1
Query para obtener los campos de una tabla y su tipo - SQL Server

Buenos días,

Necesito obtener con una query los campos de una determinada tabla y su tipo con SQL Server. La tabla la consulto en Sysobjects:

select * from sysobjects where name = 'NombreTabla'

Pero no veo que en Sysobjects haya información sobre los campos de una tabla.
¿Como se puede obtener esta información?
  #2 (permalink)  
Antiguo 27/12/2010, 07:29
Avatar de PosProdukcion  
Fecha de Ingreso: noviembre-2004
Ubicación: Manzanares el Real (Madrid)
Mensajes: 726
Antigüedad: 19 años, 5 meses
Puntos: 9
Respuesta: Query para obtener los campos de una tabla y su tipo - SQL Server

Código SQL:
Ver original
  1. SELECT OBJ.id AS id_tabla,
  2.         ROW_NUMBER() OVER (ORDER BY COL.colid) AS id_columna,
  3.         COL.name AS columna,
  4.         TYP.name AS Tipo,
  5.         --Por algun motivo los nvarchar dan el doble de la longitud
  6.         Longitud = CASE TYP.name
  7.             WHEN 'nvarchar' THEN COL.LENGTH/2
  8.             WHEN 'varchar' THEN COL.LENGTH/2
  9.             ELSE COL.LENGTH
  10.             END,
  11.         COL.xprec AS PRECISION,
  12.         COL.xscale AS escala,
  13.         COL.isnullable AS Isnullable,
  14.         FK.constid AS id_fk,
  15.         OBJ2.name AS table_derecha,
  16.         COL2.name
  17.         --COL.*
  18.     FROM dbo.syscolumns COL
  19.     JOIN dbo.sysobjects OBJ ON OBJ.id = COL.id
  20.     JOIN dbo.systypes TYP ON TYP.xusertype = COL.xtype
  21.     --left join dbo.sysconstraints CON on CON.colid = COL.colid
  22.     LEFT JOIN dbo.sysforeignkeys FK ON FK.fkey = COL.colid AND FK.fkeyid=OBJ.id
  23.     LEFT JOIN dbo.sysobjects OBJ2 ON OBJ2.id = FK.rkeyid
  24.     LEFT JOIN dbo.syscolumns COL2 ON COL2.colid = FK.rkey AND COL2.id = OBJ2.id
  25.     WHERE OBJ.name = @tabla AND (OBJ.xtype='U' OR OBJ.xtype='V')
  #3 (permalink)  
Antiguo 28/12/2010, 13:45
 
Fecha de Ingreso: agosto-2009
Mensajes: 104
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: Query para obtener los campos de una tabla y su tipo - SQL Server

Hola,

Muchas gracias, ha funcionado perfectamente.

Un saludo.

Etiquetas: campos, query, server, sql, tipo, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:11.