Recupera le descrizioni delle colonne dalla tabella collegata a SQL Server in MS Access
-
28-10-2019 - |
Domanda
Mi sto collegando alle tabelle in SQL Server da un front-end MS Access.Sono presenti descrizioni di colonne per alcune tabelle in SQL Server che vorrei portare avanti quando creo le tabelle collegate in Access.C'è un modo per ottenere le descrizioni delle colonne a livello di codice?
(So come aggiungere la descrizione alle tabelle collegate, ho solo bisogno di aiuto per ottenere le descrizioni nel back-end.)
Soluzione
Prova qualcosa come:
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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow