Estructura de una tabla en MSSQL MSSQL

Publicado: 27 de Oct del 2007

Prohibida la reproducción total o parcial de este artículo sin el previo consentimiento de Webtutoriales.com

Script para ver los campos de una tabla en Microsoft SQL Server

Estructura de los campos de una Tabla con Microsoft SQL

Tanto en el sistema de base de datos relacional de Oracle como en MySQL existe la instrucción DESCRIBE que te permite conocer la estructura de una tabla, es decir, todos los campos que contiene y de qué tipo son. En cambio, en la base de datos de Microsoft no hay ninguna instrucción predefinida equivalente a DESCRIBE.

Es por ello que hemos creado un script que al ejecutarse mostrará toda la información sobre los campos de la tabla que queramos (nombre, tipo, precisión, escala, permite nulos, valor por defecto, si es clave primaria y nombre del indice si tiene). El código es el siguiente:


CREATE Procedure MostrarEstructura(

 @TableName varchar(50)

)

AS

 IF EXISTS (SELECT * FROM dbo.sysobjects

   WHERE id = OBJECT_ID(N'[dbo].['+@tableName+']')

   AND OBJECTPROPERTY(id, N'IsUserTable') = 1)



       SELECT

               cols.name as 'Nombre del Campo',

               typs.name as 'Tipo de Datos',

               cols.prec as 'Precisión',

               cols.Scale as 'Escala',

               Allownulls as 'Permite Nulos',

               c.text as 'Valor por Defecto',

               pk.xtype AS 'Primary Key',

               indx.name as 'Nombre del Índice'



       FROM sysobjects sobj

       INNER JOIN syscolumns cols ON sobj.id=cols.id

       INNER JOIN systypes typs ON cols.xusertype=typs.xusertype

       LEFT JOIN syscomments c ON cdefault=c.id

       LEFT JOIN  sysindexkeys ik ON ik.id = cols.id AND ik.colid = cols.colid

       LEFT JOIN  sysindexes indx ON indx.id = ik.id AND indx.indid = ik.indid

       LEFT JOIN  sysobjects pk ON indx.name = pk.name AND pk.parent_obj = indx.id AND pk.xtype = 'PK'

       WHERE cols.id = OBJECT_ID(@tableName)

 ELSE

  PRINT 'No existe ninguna tabla llamada '+@tableName + ' en la base de datos ' + db_name() + '.'

RETURN

Este código crea una función (Procedure) donde se comprueba si la tabla existe. Si existe se seleccionan los campos necesarios de diferentes tablas del sistema dónde está guardada la información de los campos de la tabla entrada.

Para que este script funcione deberemos ejecutarlo una vez para que Microsoft SQL Server la guarde. Posteriormente ya podremos llamar la función pasándole como parámetro el nombre de la tabla. Por ejemplo:


MostrarEstructura NombreTabla;

Compartir artículo
Si deseas compartir este artículo copia y pega esta dirección url

Comentarios