Transact-SQL 参考

sp_updateextendedproperty

更新现有扩展属性的值。

语法

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 字节;否则 SQL Server™ 会产生错误。

[@level0type =]{'level0_object_type'}

用户或用户定义类型。level0_object_type 的数据类型为 varchar(128),其默认值为 NULL。有效的输入是 USER、TYPE 和 NULL。

[@level0name =]{'level0_object_name'}

是指定的 1 级对象类型的名称。level0_object_name 的数据类型为 sysname,默认设置为 NULL。

[@level1type =]{'level1_object_type'}

是 1 级对象的类型。level1_object_type 的数据类型为 varchar(128),默认设置为 NULL。有效的输入是 TABLE、VIEW、PROCEDURE、FUNCTION、DEFAULT、RULE 和 NULL。

[@level1name =]{'level1_object_name'}

是指定的 1 级对象类型的名称。level1_object_name 的数据类型为 sysname,默认设置为 NULL。

[@level2type =]{'level2_object_type'}

2 级对象的类型。level2_object_type 的数据类型为 varchar(128),默认设置为 NULL。有效的输入是 COLUMN、PARAMETER、INDEX、CONSTRAINT、TRIGGER 和 NULL。

[@level2name =]{'level2_object_name'}

是指定的 2 级对象类型的名称。level2_object_name 的数据类型为 sysname,默认设置为 NULL。

返回代码值

0(成功)或 1(失败)

注释

系统对象不允许有扩展属性。

对象是按级别区分的,0 级为最高,2 级为最低。当用户添加、更新或删除扩展属性时,必须指定所有更高级别的对象。例如,如果用户要向 1 级对象添加扩展属性,就必须指定所有 0 级信息。如果用户要向 2 级对象添加扩展属性,就必须提供关于 0 级和 1 级的所有信息。

在每个级别上,对象类型和对象名可唯一地标识对象。如果指定了一个对中的任一方,则必须指定另一方。

给定有效的 property_namevalue,如果所有的对象类型和名称均为空值,那么要更新的属性就属于当前数据库。如果指定对象类型和名称,则还必须指定父对象和类型。否则,SQL Server 会产生错误。

权限

db_ownerdb_ddladmin 固定数据库角色的成员可以更新任何对象的扩展属性。用户可以对其所拥有的对象更新扩展属性。但是,只有 db_owner 才可以更新用户名属性。

示例

下例为表"T1"中的"ID"列更新属性("caption","Employee 1 ID")。

CREATE   table T1 (id int , name char (20))
EXEC   sp_addextendedproperty 'caption', 'Employee ID', 'user', dbo, 'table', 'T1', 'column', id
EXEC   sp_updateextendedproperty 'caption', 'Employee 1 ID', 'user', dbo, 'table', 'T1', 'column', id

请参见

fn_listextendedproperty

属性管理