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.

Notes

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 répartis sur trois niveaux (0, 1 et 2) pour la définition des propriétés étendues. Le niveau 0 est le plus élevé et est défini en tant qu'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 AdventureWorks2008R2;
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 AdventureWorks2008R2 elle-même.

USE AdventureWorks2008R2;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'AdventureWorks2008R2 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 déconseillées dans SQL Server 2008 R2.

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 AdventureWorks2008R2;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Primary filegroup for the AdventureWorks2008R2 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 AdventureWorks2008R2_Data du groupe de fichiers PRIMARY.

USE AdventureWorks2008R2;
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_DescriptionExample', 
@value = N'Primary data file for the AdventureWorks2008R2 sample database.', 
@level0type = N'FILEGROUP', @level0name = [PRIMARY],
@level1type = N'Logical File Name', @level1name = AdventureWorks2008R2_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 :

  • fonctions scalaires CLR ;

  • fonctions table CLR ;

  • fonctions scalaires Transact-SQL ;

  • fonctions table incluse Transact-SQL ;

  • fonctions table Transact-SQL.

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 AdventureWorks2008R2;
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 AdventureWorks2008R2;
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 AdventureWorks2008R2;
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

PROCÉDURE

ALTER sur procédure OBJECT

RemarqueRemarque
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 :

  • CLR

  • Transact-SQL

  • filtres de réplication.

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 déconseillées dans SQL Server 2008 R2.

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 :

  • Rôle d'application

  • Rôle de base de données

  • Utilisateur SQL Server

  • Groupe Windows

  • Utilisateur Windows

USER ne doit être utilisé que si vous ajoutez une propriété étendue à un utilisateur.

ImportantImportant
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 un nouveau travail 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. Voir « Schéma et utilisateur », plus loin dans cette rubrique.

1

Variable

 

 

 

2

Variable

 

 

 

Exemple

Dans l'exemple suivant, une propriété étendue est ajoutée au schéma HumanResources.

USE AdventureWorks2008R2;
GO
EXECUTE sys.sp_addextendedproperty 
@name = N'MS_Description',
@value = N'Contains objects related to employees and departments.',
@level0type = N'SCHEMA', 
@level0name = HumanResources;

Dans l'exemple suivant, un rôle d'application est créé et une propriété étendue y est ajoutée.

USE AdventureWorks2008R2;
GO
CREATE APPLICATION ROLE Buyers
WITH Password = '987G^bv876sPY)Y5m23';
GO
EXEC sys.sp_addextendedproperty 
@name = N'MS_Description', 
@value = N'Application Role for the Purchasing Department.',
@level0type = N'USER',
@level0name = N'Buyers';

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 :

  • CHECK

  • DEFAULT

  • FOREIGN KEY

  • PRIMARY KEY

  • UNIQUE

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 :

  • CLR

  • Transact-SQL

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 AdventureWorks2008R2;
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 AdventureWorks2008R2;
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 déconseillées dans SQL Server 2008 R2.

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 :

  • CLR

  • Transact-SQL

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, supposons que l'utilisateur Mary détienne deux schémas (Mary et MySchema) et que ceux-ci contiennent tous les deux une table nommée MyTable. Si Mary ajoute une propriété étendue à la table MyTable et spécifie @level0type = N'USER', @level0name = Mary, il n'apparaît pas clairement à quelle table la propriété étendue est appliquée. 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