Tema: sql dinamico
Ver Mensaje Individual
  #3 (permalink)  
Antiguo 05/03/2010, 12:37
Teosanchez
 
Fecha de Ingreso: enero-2010
Ubicación: Sevilla
Mensajes: 202
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: sql dinamico

Prueba esto a ver si es lo que quieres

Código SQL:
Ver original
  1. CREATE PROCEDURE MostrarEstructura(
  2.  @TableName VARCHAR(50)
  3. )
  4. AS
  5.  IF EXISTS (SELECT * FROM dbo.sysobjects
  6.    WHERE id = OBJECT_ID(N'[dbo].['+@tableName+']')
  7.    AND OBJECTPROPERTY(id, N'IsUserTable') = 1)
  8.        SELECT
  9.                cols.name AS 'Nombre del Campo',
  10.                typs.name AS 'Tipo de Datos',
  11.                cols.prec AS 'Precisión',
  12.                cols.Scale AS 'Escala',
  13.                Allownulls AS 'Permite Nulos',
  14.                c.text AS 'Valor por Defecto',
  15.                pk.xtype AS 'Primary Key',
  16.                indx.name AS 'Nombre del Índice'
  17.        FROM sysobjects sobj
  18.        INNER JOIN syscolumns cols ON sobj.id=cols.id
  19.        INNER JOIN systypes typs ON cols.xusertype=typs.xusertype
  20.        LEFT JOIN syscomments c ON cdefault=c.id
  21.        LEFT JOIN  sysindexkeys ik ON ik.id = cols.id AND ik.colid = cols.colid
  22.        LEFT JOIN  sysindexes indx ON indx.id = ik.id AND indx.indid = ik.indid
  23.        LEFT JOIN  sysobjects pk ON indx.name = pk.name AND pk.parent_obj = indx.id AND pk.xtype = 'PK'
  24.        WHERE cols.id = OBJECT_ID(@tableName)
  25.  ELSE
  26.   PRINT 'No existe ninguna tabla llamada '+@tableName + ' en la base de datos ' + db_name() + '.'
  27. RETURN


Tomado de aquí:
http://www.webtutoriales.com/tutoria...-mssql.39.html
__________________
Mi blog de temas más o menos técnicos

Y aquí el Jamón jamon de Jabugo