Published on

September 11, 2020

Понимание расширенных свойств SQL Server

SQL Server – мощная система управления реляционными базами данных, которая позволяет предприятиям хранить и управлять большими объемами данных. Однако, помимо хранения данных, часто возникает необходимость хранить дополнительную информацию и документацию, связанную с объектами SQL Server. В этом случае используются расширенные свойства.

Расширенные свойства – это уникальная функция в SQL Server, которая позволяет пользователям хранить дополнительную информацию о объектах базы данных. Эта информация может включать детали о назначении объекта, конкретные форматы, такие как формат телефона или формат даты, описания, URL-адреса и многое другое.

В этой статье мы рассмотрим, как добавлять, обновлять и удалять расширенные свойства в SQL Server. Мы также узнаем, как извлекать расширенные свойства из таблиц sys.objects и sys.extended_properties, а также как использовать функцию FN_LISTEXTENDEDPROPERTY() для извлечения расширенных свойств.

Создание расширенных свойств

Давайте начнем с создания таблицы с двумя столбцами, “sno” и “myName”.

IF OBJECT_ID ('MyTest','U') IS NOT NULL
    DROP TABLE MyTest;

SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
CREATE TABLE MyTest (sno int, myName char (20))

Чтобы просмотреть расширенные свойства для столбца, вы можете использовать SQL Server Management Studio (SSMS). Просто разверните раздел Таблицы, найдите созданную вами таблицу, разверните Столбцы, щелкните правой кнопкой мыши на нужном столбце, выберите Свойства и перейдите на страницу Расширенные свойства.

Если вы хотите добавить расширенное свойство, вы можете просто ввести имя и значение на экране. Кроме того, вы можете использовать хранимую процедуру sp_addextendedproperty для добавления расширенного свойства программно.

EXEC sp_addextendedproperty  
     @name = N'SNO' 
    ,@value = N'Тестовая запись для расширенного свойства' 
    ,@level0type = N'Schema', @level0name = 'dbo' 
    ,@level1type = N'Table',  @level1name = 'mytest' 
    ,@level2type = N'Column', @level2name = 'sno'

Запрос расширенных свойств

Расширенные свойства хранятся в таблице sys.extended_properties. Чтобы запросить расширенные свойства для определенного объекта, вы можете использовать следующий запрос:

SELECT *
FROM sys.extended_properties
WHERE NAME = 'SNO'

Вы также можете использовать функцию FN_LISTEXTENDEDPROPERTY() для получения списка расширенных свойств. Функция возвращает тип объекта, имя объекта, имя свойства и значение свойства.

SELECT *
FROM ::fn_listextendedproperty ('SNO', 'Schema', 'dbo', 'Table', 'mytest', 'Column', 'sno')

Обновление и удаление расширенных свойств

Чтобы обновить существующее расширенное свойство, вы можете использовать хранимую процедуру sp_updateextendedproperty.

EXEC sp_updateextendedproperty
     @name = N'SNO' 
    ,@value = 'Идентификатор SNO должен быть уникальным.' 
    ,@level0type = N'Schema', @level0name = 'dbo' 
    ,@level1type = N'Table',  @level1name = 'mytest'
    ,@level2type = N'Column', @level2name = 'sno'

Чтобы удалить расширенное свойство, вы можете использовать хранимую процедуру sp_dropextendedproperty.

EXEC sp_dropextendedproperty @name=N'SNO'
  ,@level0type = N'Schema', @level0name = 'dbo' 
  ,@level1type = N'Table',  @level1name = 'mytest' 
  ,@level2type = N'Column', @level2name = 'sno'

Заключение

Расширенные свойства в SQL Server – это мощная функция, которая позволяет пользователям хранить дополнительную информацию и документацию, связанную с объектами базы данных. Они могут использоваться для различных целей, таких как указание заголовков, масок отображения, правил форматирования и многое другое. Понимая, как добавлять, обновлять и удалять расширенные свойства, разработчики могут улучшить свои объекты базы данных и предоставить ценную справочную информацию для пользователей.

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.