sp_updateextendedproperty(Transact-SQL)

기존 확장 속성의 값을 업데이트합니다.

항목 링크 아이콘 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'}
    속성에 연결된 값입니다. value는 sql_variant이며 기본값은 NULL입니다. value의 크기는 7,500바이트를 초과할 수 없습니다.

  • [ @level0type= ]{ 'level0_object_type'}
    사용자 또는 사용자 정의 형식입니다. level0_object_type은 varchar(128)이며 기본값은 NULL입니다. 유효한 입력은 ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE 및 NULL입니다.

    중요 정보중요

    수준 0 유형 USER와 TYPE은 나중 버전의 SQL Server에서 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 말고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오. USER 대신 SCHEMA를 수준 0 유형으로 사용합니다. TYPE의 경우 수준 0 유형으로 SCHEMA를 사용하고 수준 1 유형으로 TYPE을 사용합니다.

  • [ @level0name= ]{ 'level0_object_name'}
    지정된 수준 1 개체 유형의 이름입니다. level0_object_name은 sysname이며 기본값은 NULL입니다.

  • [ @level1type= ]{ 'level1_object_type'}
    수준 1 개체의 유형입니다. level1_object_type은 varchar(128)이며 기본값은 NULL입니다. 유효한 입력은 AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TYPE, VIEW, XML SCHEMA COLLECTION 및 NULL입니다.

  • [ @level1name= ]{ 'level1_object_name'}
    지정된 수준 1 개체 유형의 이름입니다. level1_object_name은 sysname이며 기본값은 NULL입니다.

  • [ @level2type= ]{ 'level2_object_type'}
    수준 2 개체의 유형입니다. level2_object_type은 varchar(128)이며 기본값은 NULL입니다. 유효한 입력은 COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER 및 NULL입니다.

  • [ @level2name= ]{ 'level2_object_name'}
    지정된 수준 2 개체 유형의 이름입니다. level2_object_name은 sysname이며 기본값은 NULL입니다.

반환 코드 값

0(성공) 또는 1(실패)

주의

확장 속성을 지정하기 위해 SQL Server 데이터베이스의 개체는 세 수준(0, 1, 2)으로 분류됩니다. 수준 0은 최고 수준이며 데이터베이스 범위에 포함된 개체로 정의됩니다. 수준 1 개체는 스키마나 USER 범위에 포함되어 있고 수준 2 개체는 수준 1 개체에 포함되어 있습니다. 모든 수준의 개체에 대해 확장 속성을 정의할 수 있습니다. 한 수준에 있는 개체를 참조할 때는 해당 개체를 소유하거나 포함하는 더 높은 수준의 개체 이름을 지정해야 합니다.

유효한 property_name 및 value가 주어지고 모든 개체 유형과 이름이 null인 경우, 업데이트된 속성은 현재 데이터베이스에 속하게 됩니다.

사용 권한

db_owner 및 db_ddladmin 고정 데이터베이스 역할의 멤버는 개체의 확장 속성을 업데이트할 수 있지만 db_ddladmin은 데이터베이스 자체 또는 사용자나 역할에 속성을 추가할 수 없다는 예외가 있습니다.

사용자는 자신이 소유하거나 ALTER 또는 CONTROL 권한이 있는 개체의 확장 속성을 업데이트할 수 있습니다.

1.열의 확장 속성 업데이트

다음 예에서는 T1 테이블의 ID 열에서 Caption 속성의 값을 업데이트합니다.

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

2.데이터베이스의 확장 속성 업데이트

다음 예에서는 먼저 AdventureWorks2012 예제 데이터베이스에 확장 속성을 만든 다음 이 속성 값을 업데이트합니다.

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)