sp_updateextendedproperty (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Met à jour la valeur d'une propriété étendue existante.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_updateextendedproperty
    [ @name = ] N'name'
    [ , [ @value = ] value ]
    [ , [ @level0type = ] 'level0type' ]
    [ , [ @level0name = ] N'level0name' ]
    [ , [ @level1type = ] 'level1type' ]
    [ , [ @level1name = ] N'level1name' ]
    [ , [ @level2type = ] 'level2type' ]
    [ , [ @level2name = ] N'level2name' ]
[ ; ]

Arguments

[ @name = ] N’name'

Nom de la propriété à mettre à jour. @name est sysname, sans valeur par défaut.

[ @value = ] value

Valeur associée à la propriété. @value est sql_variant, avec la valeur par défaut NULL. La taille de la valeur ne peut pas dépasser 7 500 octets.

[ @level0type = ] 'level0type'

Type défini par l’utilisateur ou défini par l’utilisateur. @level0type est varchar(128), avec la valeur par défaut NULL. Les entrées valides sont :

  • ASSEMBLY
  • CONTRACT
  • EVENT NOTIFICATION
  • FILEGROUP
  • MESSAGE TYPE
  • PARTITION FUNCTION
  • PARTITION SCHEME
  • PLAN GUIDE
  • REMOTE SERVICE BINDING
  • ROUTE
  • SCHEMA
  • SERVICE
  • USER
  • TRIGGER
  • TYPE
  • NULL

Important

USER et au fur et TYPE à mesure que les types de niveau 0 seront supprimés dans une version ultérieure de SQL Server. Évitez d'utiliser ces fonctionnalités dans une nouvelle tâche de développement et prévoyez de modifier les applications qui les utilisent actuellement. Utilisez SCHEMA comme type de niveau 0 au lieu de USER. Pour TYPE, utilisez SCHEMA comme type de niveau 0 et TYPE comme type de niveau 1 .

[ @level0name = ] N’level0name'

Nom du type d’objet de niveau 0 spécifié. @level0name est sysname, avec la valeur par défaut NULL.

[ @level1type = ] 'level1type'

Type d’objet de niveau 1. @level1type est varchar(128), avec la valeur par défaut NULL. Les entrées valides sont :

  • ASSEMBLY
  • CONTRACT
  • EVENT NOTIFICATION
  • FILEGROUP
  • MESSAGE TYPE
  • PARTITION FUNCTION
  • PARTITION SCHEME
  • PLAN GUIDE
  • REMOTE SERVICE BINDING
  • ROUTE
  • SCHEMA
  • SERVICE
  • USER
  • TRIGGER
  • TYPE
  • NULL

[ @level1name = ] N’level1name'

Nom du type d’objet de niveau 1 spécifié. @level1name est sysname, avec la valeur par défaut NULL.

[ @level2type = ] 'level2type'

Type d’objet de niveau 2. @level2type est varchar(128), avec la valeur par défaut NULL. Les entrées valides sont :

  • COLUMN
  • CONSTRAINT
  • EVENT NOTIFICATION
  • INDEX
  • PARAMETER
  • TRIGGER
  • NULL

[ @level2name = ] N’level2name'

Nom du type d’objet de niveau 2 spécifié. @level2name est sysname, avec la valeur par défaut NULL.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

Lorsque vous spécifiez des propriétés étendues, les objets d’une base de données SQL Server sont classés en trois niveaux (0, 1 et 2). Le niveau 0 est le niveau le plus élevé et est composé d'objets relevant de l'étendue de la base de données. Les objets de niveau 1 figurent dans l'étendue du schéma ou de l'utilisateur tandis que les objets de niveau 2 se trouvent dans les objets de niveau 1. Vous pouvez définir des propriétés étendues pour les objets de tous ces 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.

Étant donné une @name valide et @value, si tous les types et noms d’objets sont NULL, la propriété mise à jour appartient à la base de données active.

Autorisations

Les membres du db_owner et db_ddladmin rôles de base de données fixes peuvent mettre à jour les propriétés étendues d’un objet à l’exception suivante : db_ddladmin ne peut pas ajouter de propriétés à la base de données elle-même, ni aux utilisateurs ou aux rôles.

Les utilisateurs peuvent mettre à jour les propriétés étendues aux objets dont ils possèdent ou sur lesquels ils disposent d’autorisations ALTER ou CONTROL.

Exemples

R. Mettre à jour une propriété étendue sur une colonne

L'exemple suivant met à jour la valeur de la propriété Caption sur la colonne ID de la table T1.

USE AdventureWorks2022;
GO

CREATE TABLE T1 (id INT, name CHAR(20));
GO

EXEC sp_addextendedproperty @name = N'Caption',
    @value = N'Employee ID',
    @level0type = 'SCHEMA',
    @level0name = N'dbo',
    @level1type = 'TABLE',
    @level1name = N'T1',
    @level2type = 'COLUMN',
    @level2name = N'id';
GO

--Update the extended property.
EXEC sp_updateextendedproperty @name = N'Caption',
    @value = 'Employee ID must be unique.',
    @level0type = 'SCHEMA',
    @level0name = N'dbo',
    @level1type = 'TABLE',
    @level1name = N'T1',
    @level2type = 'COLUMN',
    @level2name = N'id';
GO

B. Mettre à jour une propriété étendue sur une base de données

L'exemple suivant crée une propriété étendue sur l'exemple de base de données AdventureWorks2022 puis met à jour la valeur de cette propriété.

USE AdventureWorks2022;
GO

EXEC sp_addextendedproperty @name = N'NewCaption',
    @value = 'AdventureWorks Sample OLTP Database';
GO

USE AdventureWorks2022;
GO

EXEC sp_updateextendedproperty @name = N'NewCaption',
    @value = 'AdventureWorks Sample Database';
GO