Pregunta

Estoy vinculando a tablas en SQL Server desde un front-end de MS Access. Hay descripciones de columnas para algunas de las tablas en SQL Server que me gustaría ofrecer cuando creo las tablas vinculadas en el acceso. ¿Hay alguna manera de llegar mediante la descripción de la columna mediante programación?

(Sé cómo agregar la descripción a las tablas vinculadas, solo necesito ayuda para obtener las descripciones en el back -end).

¿Fue útil?

Solución

Prueba algo como:

DECLARE @TableName varchar(100)
SELECT @TableName = 'yourtablename'


-- This will determine if we're using version 9 (2005) of SQL Server, and execute code accordingly

IF CAST(REPLACE(SUBSTRING(CAST(SERVERPROPERTY('productversion') as varchar),1,2), '.','') as int) >= 9
BEGIN
      -- This is a SQL 2005 machine
      SELECT  
            [Table Name] = OBJECT_NAME(c.object_id), 
            [Column Name] = c.name, 
            [Description] = ex.value  
      FROM  
            sys.columns c  
      LEFT OUTER JOIN  
            sys.extended_properties ex  
      ON  
            ex.major_id = c.object_id 
            AND ex.minor_id = c.column_id  
            AND ex.name = 'MS_Description'  
      WHERE  
            OBJECTPROPERTY(c.object_id, 'IsMsShipped')=0  
            AND OBJECT_NAME(c.object_id) = @TableName
      ORDER  
            BY OBJECT_NAME(c.object_id), c.column_id
END
ELSE
BEGIN
      -- assume this is a SQL 2000
      SELECT 
            [Table Name] = i_s.TABLE_NAME, 
            [Column Name] = i_s.COLUMN_NAME, 
            [Description] = s.value 
      FROM 
            INFORMATION_SCHEMA.COLUMNS i_s 
      LEFT OUTER JOIN 
            sysproperties s 
      ON 
            s.id = OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME) 
            AND s.smallid = i_s.ORDINAL_POSITION 
            AND s.name = 'MS_Description' 
      WHERE 
            OBJECTPROPERTY(OBJECT_ID(i_s.TABLE_SCHEMA+'.'+i_s.TABLE_NAME), 'IsMsShipped')=0 
            AND i_s.TABLE_NAME = @TableName
      ORDER BY
            i_s.TABLE_NAME, i_s.ORDINAL_POSITION 
END
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top