sp_updateextendedproperty (Transact-SQL)

Область применения: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure

Обновляет значение существующего расширенного свойства.

Topic link iconСинтаксические обозначения в Transact-SQL

Синтаксис

  
sp_updateextendedproperty  
    [ @name = ]{ 'property_name' }   
    [ , [ @value = ]{ 'value' }  
        [, [ @level0type = ]{ 'level0_object_type' }  
         , [ @level0name = ]{ 'level0_object_name' }  
              [, [ @level1type = ]{ 'level1_object_type' }  
               , [ @level1name = ]{ 'level1_object_name' }  
                     [, [ @level2type = ]{ 'level2_object_type' }  
                      , [ @level2name = ]{ 'level2_object_name' }  
                     ]  
              ]  
        ]  
    ]  

Аргументы

[ @name= ]{ 'property_name'}
Имя свойства, которое необходимо обновить. property_name является sysname и не может иметь значение NULL.

[ @value= ]{ 'value'}
Значение, связанное со свойством. значение равно sql_variant со значением по умолчанию NULL. Размер значения не может превышать 7500 байт.

[ @level0type= ]{ 'level0_object_type'}
Пользователь или тип, определяемый пользователем. level0_object_type имеет значение varchar(128) со значением NULL. Допустимые входные данные: ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, PLAN GUIDE, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE и NULL.

Важно!

Типы USER и TYPE в качестве уровней 0 будут удалены в будущей версии SQL Server. Старайтесь не использовать эти функции в новых разработках и предусмотрите соответствующие изменения в приложениях, которые используют их в настоящее время. Тип SCHEMA следует использовать в качестве типа уровня 0 вместо USER. В значении аргумента TYPE следует указывать тип SCHEMA в качестве типа уровня 0 и TYPE в качестве типа уровня 1.

[ @level0name= ]{ 'level0_object_name'}
Имя указанного типа объекта уровня 1. level0_object_namesysname со значением по умолчанию NULL.

[ @level1type= ]{ 'level1_object_type'}
Тип объекта уровня 1. level1_object_typevarchar(128) с значением NULL по умолчанию. Допустимые входные данные: AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TABLE_TYPE, TYPE, VIEW, XML SCHEMA COLLECTION и NULL.

[ @level1name= ]{ 'level1_object_name'}
Имя указанного типа объекта уровня 1. level1_object_namesysname со значением по умолчанию NULL.

[ @level2type= ]{ 'level2_object_type'}
Тип объекта уровня 2. level2_object_typevarchar(128) с значением по умолчанию NULL. Допустимые входные данные: COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER и NULL.

[ @level2name= ]{ 'level2_object_name'}
Имя указанного типа объекта уровня 2. level2_object_namesysname с значением по умолчанию NULL.

Значения кода возврата

0 (успешное завершение) или 1 (неуспешное завершение)

Remarks

Для указания расширенных свойств объекты в базе данных SQL Server классифицируются на три уровня (0, 1 и 2). Уровень 0 является высшим уровнем и определяется как «объекты в области базы данных». Объекты уровня 1 содержатся в схеме и в пользовательской области, а объекты уровня 2 содержатся в объектах уровня 1. Расширенные свойства могут быть определены для объектов на любом из этих уровней. Ссылки на объект определенного уровня должны быть уточнены именами объектов более высокого уровня, в которых они содержатся или которым они принадлежат.

Учитывая допустимые property_name и значение, если все типы объектов и имена имеют значение NULL, обновленное свойство принадлежит текущей базе данных.

Разрешения

Члены предопределенных ролей базы данных db_owner и db_ddladmin могут обновлять расширенные свойства любого объекта с помощью следующего исключения: db_ddladmin не могут добавлять свойства в саму базу данных или пользователей или роли.

Пользователи могут обновлять расширенные свойства принадлежащих им объектов, а также свойства, для которых у этих пользователей есть разрешения ALTER или CONTROL.

Примеры

A. Обновление расширенного свойства столбца

В следующем примере обновляется значение свойства Caption столбца ID в таблице T1.

USE AdventureWorks2012;  
GO  
CREATE TABLE T1 (id int , name char (20));  
GO  
EXEC sp_addextendedproperty   
    @name = N'Caption'  
    ,@value = N'Employee ID'  
    ,@level0type = N'Schema', @level0name = dbo  
    ,@level1type = N'Table',  @level1name = T1  
    ,@level2type = N'Column', @level2name = id;  
GO  
--Update the extended property.  
EXEC sp_updateextendedproperty   
    @name = N'Caption'  
    ,@value = 'Employee ID must be unique.'  
    ,@level0type = N'Schema', @level0name = dbo  
    ,@level1type = N'Table',  @level1name = T1  
    ,@level2type = N'Column', @level2name = id;  
GO  

Б. Обновление расширенного свойства базы данных

В следующем примере расширенное свойство образца базы данных AdventureWorks2019 создается, затем обновляется.

USE AdventureWorks2012;  
GO  
EXEC sp_addextendedproperty   
@name = N'NewCaption', @value = 'AdventureWorks2012 Sample OLTP Database';  
GO  
USE AdventureWorks2012;  
GO  
EXEC sp_updateextendedproperty   
@name = N'NewCaption', @value = 'AdventureWorks2012 Sample Database';  
GO  

См. также:

Хранимые процедуры ядра СУБД (Transact-SQL)
sys.fn_listextendedproperty (Transact-SQL)
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
Представление каталога sys.extended_properties (Transact-SQL)