Utilisation de propriétés étendues sur les objets de base de données
Lors de l'utilisation de propriétés étendues, vous pouvez ajouter du texte, comme du contenu descriptif ou des instructions, des masques de saisie et des règles de mise en forme sous la forme de propriétés d'objets d'une base de données ou de propriétés de la base de données elle-même. Par exemple, vous pouvez ajouter une propriété étendue à un schéma, à une vue de schéma ou à une colonne de la vue. Étant donné que les propriétés étendues sont stockées dans la base de données, toutes les applications qui les lisent peuvent évaluer l'objet de la même manière. Ainsi, les données sont traitées de façon cohérente par les différents programmes du système.
Les propriétés étendues peuvent être utilisées à différentes fins :
définition d'une légende pour une table, une vue ou une colonne, légende que pourront utiliser les applications dans une interface utilisateur destinée à afficher des informations provenant de cette table, vue ou colonne ;
définition d'un masque de saisie pour une colonne afin que toutes les applications puissent valider les données avant d'exécuter une instruction Transact-SQL ; par exemple pour spécifier le format requis pour une colonne comprenant des codes postaux ou des numéros de téléphone ;
définition de règles de mise en forme pour l'affichage de données dans une colonne ;
enregistrement de la description d'un objet de base de données, qui peut être ensuite présentée aux utilisateurs par les applications, par exemple pour qu'une telle description soit utilisée dans un rapport ou une application de type dictionnaire de données ;
définition de la taille et de l'emplacement d'une colonne à l'écran.
[!REMARQUE]
Les propriétés étendues ne doivent pas être utilisées pour masquer les informations sensibles sur un objet particulier. Tout utilisateur disposant d'autorisations sur l'objet sera en mesure d'afficher les propriétés étendues de cet objet. Par exemple, si vous accordez à un utilisateur l'autorisation SELECT sur une table, celui-ci pourra afficher les propriétés étendues de cette table.
Définition de propriétés étendues
Chaque propriété étendue a un nom et une valeur définis par l'utilisateur. La valeur d'une propriété étendue est une valeur sql_variant qui peut contenir jusqu'à 7 500 octets de données. Vous pouvez ajouter plusieurs propriétés étendues à chaque objet.
Les objets d'une base de données SQL Server sont classés en trois niveaux (0, 1, 2) pour la définition des propriétés étendues. Le niveau 0 est le niveau le plus élevé et regroupe les objets contenus dans l'étendue de la base de données. Les objets de niveau 1 appartiennent à l'étendue d'un utilisateur ou d'un schéma, et ils contiennent les objets de niveau 2. Il est possible de définir des propriétés étendues pour les objets de ces trois niveaux.
Les références à un objet d'un niveau donné doivent être qualifiées par les noms des objets de niveau supérieur possédant ou contenant l'objet en question. Par exemple, lorsque vous ajoutez une propriété étendue à une colonne de table (niveau 2), vous devez également spécifier le nom de la table (niveau 1) qui contient la colonne ainsi que le schéma (niveau 0) qui contient la table.
Dans l'exemple suivant, la valeur de propriété étendue 'Minimum inventory quantity.' est ajoutée à la colonne SafetyStockLevel de la table Product appartenant au schéma Production .
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Minimum inventory quantity.',
@level0type = N'SCHEMA', @level0name = Production,
@level1type = N'TABLE', @level1name = Product,
@level2type = N'COLUMN', @level2name = SafetyStockLevel;
GO
Ajout de propriétés étendues à des objets
Les tableaux ci-dessous répertorient les objets auxquels vous pouvez ajouter des propriétés étendues. Les types d'objets de niveaux 0, 1 et 2 valides sont indiqués, ainsi que les autorisations requises pour ajouter, supprimer ou afficher les propriétés étendues.
Agrégation
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
AGGREGATE |
ALTER sur OBJECT agrégation |
N'importe laquelle sur OBJECT |
S'applique à toutes les fonctions CLR définies par l'utilisateur. |
Clé asymétrique
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
ASYMMETRIC KEY |
ALTER sur CERTIFICATE |
N'importe laquelle sur KEY |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Assembly
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
ASSEMBLY |
ALTER sur ASSEMBLY |
N'importe laquelle sur ASSEMBLY |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Certificat
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
CERTIFICATE |
ALTER sur CERTIFICATE |
N'importe laquelle sur CERTIFICATE |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Contrat (Service Broker)
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
CONTRACT |
ALTER sur CONTRACT |
N'importe laquelle sur CONTRACT |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Base de données
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
Aucun |
ALTER sur DATABASE |
CONTROL sur DATABASE ou TAKE OWNERSHIP sur DATABASE ou VIEW DEFINITION sur DATABASE ou ALTER ANY DATABASE sur SERVER ou CREATE DATABASE sur SERVER |
Propriété s'appliquant à la base de données elle-même. |
1 |
Aucun |
|
|
|
2 |
Aucun |
|
|
|
Exemple
Dans l'exemple ci-dessous, une propriété étendue est ajoutée à la base de données exemple AdventureWorks elle-même.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'AdventureWorks Sample OLTP Database';
GO
Valeur par défaut
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
|
1 |
DEFAULT |
ALTER sur SCHEMA |
HAS_DBACCESS = 1 |
Fourni à des fins de compatibilité descendante uniquement. Pour plus d'informations, consultez Fonctionnalités du moteur de base de données abandonnées dans SQL Server 2008. |
2 |
Aucun |
|
|
|
Notification d'événement
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
EVENT NOTIFICATION |
ALTER ANY DATABASE EVENT NOTIFICATION ON DATABASE |
Propriétaire de notification d'événement ou CONTROL, ALTER, TAKE OWNERSHIP ou VIEW DEFINITION sur la base de données ou ALTER ANY DATABASE EVENT NOTIFICATION |
S'applique aux notifications d'événement au niveau de la base de données dont le parent est la base de données. Il n'est pas possible d'ajouter des propriétés étendues à des notifications d'événement au niveau du serveur. |
1 |
Aucune |
|
|
|
2 |
Aucune |
|
|
|
Nom de fichier ou de groupe de fichiers
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
FILEGROUP |
ALTER sur DATABASE |
HAS_DBACCESS = 1 |
1 |
LOGICAL FILE NAME |
ALTER sur DATABASE |
HAS_DBACCESS = 1 |
2 |
Aucune |
|
|
Exemple
Dans l'exemple ci-dessous, une propriété étendue est ajoutée au groupe de fichiers PRIMARY.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Primary filegroup for the AdventureWorks sample database.',
@level0type = N'FILEGROUP', @level0name = [PRIMARY];
GO
Dans l'exemple ci-dessous, une propriété étendue est ajoutée au nom de fichier logique AdventureWorks_Data du groupe de fichiers PRIMARY.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Primary data file for the AdventureWorks sample database.',
@level0type = N'FILEGROUP', @level0name = [PRIMARY],
@level1type = N'Logical File Name', @level1name = AdventureWorks_Data;
GO
Fonction
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
FUNCTION |
ALTER sur OBJECT fonction |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
S'applique à ces fonctions définies par l'utilisateur :
Si un type de niveau 2 n'est pas spécifié, la propriété s'applique à la fonction elle-même. |
2 |
COLUMN |
ALTER sur OBJECT fonction |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
|
2 |
CONSTRAINT |
ALTER sur OBJECT fonction |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
|
2 |
PARAMETER |
ALTER sur OBJECT fonction |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
|
Exemple
Dans l'exemple ci-dessous, une propriété étendue est ajoutée à la fonction définie par l'utilisateur ufnGetStock.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Scalar function returning the quantity of inventory for a specified ProductID.',
@level0type = N'SCHEMA', @level0name = [dbo],
@level1type = N'FUNCTION', @level1name = ufnGetStock;
GO
Dans l'exemple ci-dessous, une propriété étendue est ajoutée au paramètre @ProductID de la fonction définie par l'utilisateur ufnGetStock.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Input parameter. Enter a valid ProductID.',
@level0type = N'SCHEMA', @level0name = [dbo],
@level1type = N'FUNCTION', @level1name = ufnGetStock,
@level2type = N'PARAMETER', @level2name ='@ProductID';
GO
Type du message
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
MESSAGE TYPE |
ALTER sur MESSAGE TYPE |
HAS_DBACCESS = 1 |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Partition, fonction
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
PARTITION FUNCTION |
ALTER ANY DATASPACE sur DATABASE |
HAS_DBACCESS = 1 |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Schéma de partition
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
PARTITION SCHEME |
ALTER ANY DATASPACE sur DATABASE |
HAS_DBACCESS = 1 |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Repère de plan
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
PLAN GUIDE |
ALTER ANY DATASPACE sur DATABASE |
VIEW DEFINITION, ALTER, TAKE OWNERSHIP ou CONTROL sur la base de données pour les repères SQL ou TEMPLATE et VIEW DEFINITION, ALTER, TAKE OWNERSHIP ou CONTROL sur l'objet pour les repères OBJECT |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Dans l'exemple ci-dessous, une propriété étendue est ajoutée au repère de plan TemplateGuide1.
USE AdventureWorks;
GO
EXECUTE sp_addextendedproperty @name=N'PlanGuideGroup', @value = N'MyTest',
@level0type = N'Plan Guide', @level0name = 'TemplateGuide1';
Procédure
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
PROCEDURE |
ALTER sur OBJECT procédure
Remarque
Seuls les membres du rôle serveur fixe sysadmin peuvent ajouter des propriétés étendues aux procédures stockées étendues.
|
N'importe laquelle sur OBJECT |
S'applique à ces procédures stockées définies par l'utilisateur :
Si un type de niveau 2 n'est pas spécifié, la propriété s'applique à la procédure elle-même. |
2 |
PARAMETER |
ALTER sur OBJECT procédure |
N'importe laquelle sur OBJECT |
|
File d'attente (Service Broker)
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
QUEUE |
ALTER sur OBJECT file d'attente |
N'importe laquelle sur OBJECT |
|
2 |
EVENT NOTIFICATION |
ALTER sur OBJECT file d'attente |
Propriétaire de notification d'événement ou CONTROL, ALTER, TAKE OWNERSHIP ou VIEW DEFINITION sur la file d'attente ou ALTER ANY DATABASE EVENT NOTIFICATION |
La notification d'événement peut avoir un propriétaire différent de celui de la file d'attente. |
Liaison de service distant (Service Broker)
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
REMOTE SERVICE BINDING |
ALTER sur REMOTE SERVICE BINDING |
N'importe laquelle sur REMOTE SERVICE BINDING |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Itinéraire (Service Broker)
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
ROUTE |
ALTER sur REMOTE SERVICE BINDING |
N'importe laquelle sur ROUTE |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Règle
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
|
1 |
RULE |
ALTER sur SCHEMA |
HAS_DBACCESS = 1 |
Fourni pour la compatibilité descendante. Pour plus d'informations, consultez Fonctionnalités du moteur de base de données abandonnées dans SQL Server 2008. |
2 |
Aucun |
|
|
|
Schéma ou utilisateur
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
ALTER sur SCHEMA ou ALTER sur USER |
N'importe laquelle sur APPLICATION ROLE ou N'importe laquelle sur ROLE ou N'importe laquelle sur USER |
Si un type de niveau 1 n'est pas spécifié, la propriété s'applique au schéma ou à l'utilisateur lui-même. USER peut correspondre à l'un des éléments suivants :
USER ne doit être utilisé que si vous ajoutez une propriété étendue à un utilisateur.
Important
USER en tant que type de niveau 0 défini sur des objets de type de niveau 1 ou 2 sera supprimé dans une version future de SQL Server. Évitez d'utiliser cette fonction dans vos nouveaux travaux de développement et prévoyez la modification des applications qui l'utilisent actuellement. Utilisez à la place SCHEMA en tant que type de niveau 0.
|
1 |
Variable |
|
|
|
2 |
Variable |
|
|
|
Service
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
SERVICE |
ALTER sur SERVICE |
ALTER sur SERVICE ou CONTROL sur SERVICE ou TAKE OWNERSHIP sur SERVICE ou VIEW DEFINITION sur SERVICE |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Clé symétrique
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
---|---|---|---|
0 |
SYMMETRIC KEY |
ALTER sur CERTIFICATE |
N'importe laquelle sur KEY |
1 |
Aucune |
|
|
2 |
Aucune |
|
|
Synonyme
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
SYNONYM |
CONTROL sur SYNONYM |
N'importe laquelle sur OBJECT |
|
2 |
Aucun |
|
|
|
Table
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
TABLE |
ALTER sur OBJECT table |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
S'applique à des tables définies par l'utilisateur. Si un type de niveau 2 n'est pas spécifié, la propriété s'applique à la table elle-même. |
2 |
COLUMN |
ALTER sur OBJECT table |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
|
2 |
CONSTRAINT |
ALTER sur OBJECT table |
ALTER sur OBJECT ou CONTROL sur OBJECT ou TAKE OWNERSHIP sur OBJECT ou VIEW DEFINITION sur OBJECT |
S'applique à ces contraintes :
|
2 |
INDEX |
ALTER sur OBJECT table |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
S'applique aux index XML et relationnels. |
2 |
TRIGGER |
ALTER sur OBJECT table |
ALTER sur OBJECT ou CONTROL sur OBJECT ou TAKE OWNERSHIP sur OBJECT ou VIEW DEFINITION sur OBJECT |
S'applique à ces déclencheurs DML :
Ne s'applique pas aux déclencheurs DDL. |
Exemple
Dans l'exemple ci-dessous, une propriété étendue est ajoutée à la table Address dans le schéma Person.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'Street address information for customers, employees, and vendors.',
@level0type = N'SCHEMA', @level0name = Person,
@level1type = N'TABLE', @level1name = Address;
GO
Dans l'exemple ci-dessous, une propriété étendue est ajoutée à l'index IX_Address_StateProviceID de la table Address dans le schéma Person.
USE AdventureWorks;
GO
EXEC sys.sp_addextendedproperty
@name = N'MS_DescriptionExample',
@value = N'Nonclustered index on StateProvinceID.',
@level0type = N'SCHEMA', @level0name = Person,
@level1type = N'TABLE', @level1name = Address,
@level2type = N'INDEX', @level2name = IX_Address_StateProvinceID;
GO
Déclencheur
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
TRIGGER |
ALTER ANY TRIGGER sur DATABASE |
ALTER ANY TRIGGER sur DATABASE |
S'applique uniquement aux déclencheurs DDL. |
1 |
Aucune |
|
|
|
2 |
Aucune |
|
|
|
Type
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
TYPE |
CONTROL sur TYPE |
N'importe laquelle sur TYPE |
S'applique aux types définis par l'utilisateur créés dans les versions précédentes de SQL Server. Fourni pour des raisons de compatibilité descendante. Pour plus d'informations, consultez Fonctionnalités du moteur de base de données abandonnées dans SQL Server 2008. |
1 |
Aucune |
|
|
|
2 |
Aucune |
|
|
|
Type
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
TYPE |
CONTROL sur TYPE |
N'importe laquelle sur TYPE |
|
2 |
Aucun |
|
|
|
Vue
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
VIEW |
ALTER sur OBJECT vue |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
S'applique à des vues définies par l'utilisateur. Si un type de niveau 2 n'est pas spécifié, la propriété s'applique à la vue elle-même. |
2 |
COLUMN |
ALTER sur OBJECT vue |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
|
2 |
INDEX |
ALTER sur OBJECT vue |
N'importe laquelle sur COLUMN ou N'importe laquelle sur OBJECT |
S'applique aux index XML et relationnels. |
2 |
TRIGGER |
ALTER sur OBJECT vue |
ALTER ANY TRIGGER sur DATABASE ou ALTER sur OBJECT ou CONTROL sur OBJECT ou TAKE OWNERSHIP sur OBJECT ou VIEW DEFINITION sur OBJECT |
S'applique à ces déclencheurs DML :
Ne s'applique pas aux déclencheurs DDL. |
Collection de schémas XML
Niveau |
Type du niveau |
Autorisations requises pour ajouter ou supprimer une propriété étendue |
Autorisations requises pour afficher une propriété étendue |
Commentaires |
---|---|---|---|---|
0 |
SCHEMA ou USER |
|
|
SCHEMA doit être utilisé au lieu de USER. Voir « Schéma et utilisateur », plus loin dans cette rubrique. |
1 |
XML SCHEMA COLLECTION |
ALTER sur XML SCHEMA COLLECTION |
ALTER sur XML SCHEMA COLLECTION ou CONTROL sur XML SCHEMA COLLECTION ou REFERENCES sur XML SCHEMA COLLECTION ou TAKE OWNERSHIP sur XML SCHEMA COLLECTION ou VIEW DEFINITION sur XML SCHEMA COLLECTION |
Il est possible d'ajouter des propriétés étendues à un espace de noms XML. |
2 |
Aucun |
|
|
|
Objets ne prenant pas en charge les propriétés étendues
Vous ne pouvez pas définir des propriétés étendues sur les objets suivants :
objets d'étendue de base de données non répertoriés dans les tableaux ci-dessus, et notamment les objets de texte intégral ;
objets en dehors de l'étendue de base de données, tels que les points d'arrêt HTTP ;
objets non nommés comme les paramètres des fonctions de partition ;
certificats, clés symétriques et asymétriques et informations d'identification ;
objets définis par le système comme les tables système, les vues de catalogue et les procédures stockées système.
Schéma et utilisateur
Dans les versions précédentes de SQL Server, les utilisateurs étaient propriétaires des objets de bases de données telles que les tables, les vues et les déclencheurs. Par conséquent, il était permis d'ajouter une propriété étendue à l'un de ces objets et de spécifier un nom d'utilisateur en guise de type du niveau 0. Les objets de base de données font à présent partie de schémas qui sont indépendants des utilisateurs qui sont propriétaires de ces schémas.
Si vous indiquez USER en guise de type du niveau 0 quand vous appliquez une propriété étendue à un objet de base de données, une ambiguïté peut se produire lors de la résolution de noms. Par exemple, supposez que l'utilisateur Marie détient deux schémas (Marie et MySchema) et que ceux-ci contiennent tous deux une table intitulée MyTable. Si Mary ajoute une propriété étendue à la table MyTable en spécifiant @level0type = N'USER', @level0name = Mary, cela ne définit par clairement la table à laquelle la propriété étendue s'applique. Pour assurer la compatibilité descendante, SQL Server applique la propriété étendue à la table contenue dans le schéma nommé Mary. Pour plus d'informations sur les utilisateurs et les schémas, consultez Séparation du schéma et de l'utilisateur.
Utilisation de masques de saisie ou de contraintes CHECK
Les contraintes CHECK comme les propriétés étendues qui fournissent un masque de saisie peuvent toutes deux être employées pour spécifier le modèle de données attendu pour les colonnes d'une table ou d'une vue. La plupart des sites optent pour l'un ou l'autre de ces deux éléments, sauf dans les cas suivants :
si les contraintes CHECK étaient provisoirement utilisées jusqu'à ce que tous les programmes manipulant la table soient modifiés pour qu'ils puissent employer des propriétés de masque de saisie ;
si le site prend également en charge des utilisateurs pouvant mettre à jour les données par le biais d'outils ad hoc qui ne lisent pas les propriétés étendues.
L'avantage du masque de saisie par rapport à la contrainte CHECK est que la logique est appliquée dans les applications. Ces dernières peuvent générer davantage d'erreurs de type information si l'utilisateur fournit des données à un format incorrect. L'inconvénient du masque de saisie est que l'obtention de la propriété passe obligatoirement par un appel distinct de fn_listextendedproperty ou de sys.extended_properties, et que la logique destinée à appliquer le masque doit être ajoutée dans tous les programmes.
Réplication des propriétés étendues
Les propriétés étendues sont répliquées uniquement lors de la synchronisation initiale entre l'Abonné et le serveur de publication. Si vous ajoutez ou modifiez une propriété étendue après la synchronisation initiale, la modification n'est pas répliquée. Pour plus d'informations sur la réplication des objets de base de données, consultez Publication de données et d'objets de base de données.
Utilisation de propriétés étendues dans les applications
Les propriétés étendues ne fournissent qu'un emplacement nommé pour le stockage des données. Toutes les applications doivent être programmées pour interroger la propriété et réaliser l'action appropriée. Par exemple, l'ajout d'une propriété de légende à une colonne ne génère pas la création d'une légende pouvant être affichée par une application. Chaque application doit être programmée pour lire la légende et l'afficher correctement.
Pour ajouter une propriété étendue
Pour mettre à jour une propriété étendue
Pour supprimer une propriété étendue
Pour afficher une propriété étendue
Voir aussi