Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Associer une description aux colonnes des tables dans la base de données

0000003072     -      28/06/2022

SQL Server permet d'associer une description à toutes les colonnes des tables dans la base de données. Il est ainsi possible d'ajouter un commentaire plus explicatif que le simple nom de colonne. Mercator 10.10 peut récupérer cette description pour l'afficher dans la liste des colonnes disponibles lors de l'export depuis les signalétiques.

 

La description peut être saisie via les outils clients de SQL Server. En mode "création - design" sur la table souhaitée, il est possible d'éditer cette propriété pour chaque colonne :

sqltools_descr

Cette description peut aussi être saisie dans Mercator, via l'éditeur de code du menu "Outils". Dans cet écran, il est possible d'afficher le schéma de la base de données via ce bouton : 

Dans le Database Viewer, un clic droit sur un nom de colonne permet d'en éditer la description.

 

Il est aussi possible de déterminer la description par code SQL. Pour cela, il suffit d'utiliser la procédure stockée que Mercator met à disposition :

SP_SET_COLUMN_DESCRIPTION @table, @column, @value

Le script ci-dessous permet de fixer toutes les descriptions des clés de recherche dans les signalétiques, selon les valeurs correspondantes trouvées dans les options de Mercator :

declare @allSigs varchar(100), @table sysname, @t tinyint, @i tinyint, @type char(8), @column char(6), @value varchar(200)
set @allSigs = ',ANA,CLI,DEST,EMB,FOU,GEN,IMM,MPLACE,PROJ,STOCK,TACT,XLEAD,YPREST,'
set @t = 1;
set @table = dbo.STREXTRACT(@allSigs, ',', ',', @t)
while @table <> ''
begin
set @i = 1
while @i <= 3
begin
set @column = left(@table, 1) +'_CLE' + str(@i, 1)
if dbo.FIELD_EXISTS(@table, @column) = 1
begin
set @type = 'CLE' + str(@i, 1) + '_' + left(@table, 1) +'_F' /* ici _F = français */
select @value = valeur from OPTIONS where [type] = @type
if (@value is not null) and (@value <> '')
exec SP_SET_COLUMN_DESCRIPTION @table, @column, @value
end
set @i = @i + 1;
end
set @t = @t + 1;
set @table = dbo.STREXTRACT(@allSigs, ',', ',', @t)
end