Query para listar las tablas y campos de tu BD

Particularmente varias veces me ah sucedido que necesito los campos de una tabla en especial ademas de sus tipo y longitud del campo, bueno con este query resolvi varios inconvenientes ya que lista las el nombre de las tablas, nombre de los campos, tipos de datos y su longitud.
Para ello consultamos a las System Tables de la BD: sysobjects contiene una fila por cada objeto que se crea en nuestra BD, entre ellos las tablas, definidas con el tipo 'U', syscolumns devuelve una fila por cada columna en en nuestra tabla y vista y tambien una fila por cada parametro de un stored procedure, y systypes para traer el nombre del tipo de datos, ya que tenemos los codigos de los tipos en syscolumns.

Es un query basico que se puede ampliar.

SELECT 
Table_Name=sysobjects.name,
Column_Name=syscolumns.name,
DataType=systypes.name,
Length=syscolumns.length
FROM
sysobjects INNER JOIN syscolumns
ON sysobjects.id = syscolumns.id
INNER JOIN systypes
ON syscolumns.xtype=systypes.xusertype
WHERE sysobjects.xtype='U'
ORDER BY sysobjects.name,syscolumns.colid



Bytes!

 


« code name... Jonathan »