COMMENT 语句
COMMENT 语句在各种对象的目录描述中添加或替换注释。
调用
此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。
权限
语句授权标识所拥有的特权必须至少包括下列其中一项权限:
- 对象的所有者 (列或约束的底层表) ,记录在对象的目录视图的 OWNER 列中
- 对模式的 ALTERIN 特权 (仅适用于允许多个部分名称的对象)
- 对对象的 CONTROL 特权 (仅适用于索引,包,表或视图对象)
- 对对象的 ALTER 特权 (仅适用于表对象)
- CREATE_SECURE_OBJECT 权限 (仅适用于安全功能或安全触发器)
- WITH ADMIN OPTION (仅适用于角色)
- 对模式的 SCHEMAADM 权限 (仅适用于允许多个部分名称的对象)
- WLMADM 权限 (仅适用于工作负载管理器对象)
- SECADM 权限 (仅适用于审计策略,列掩码,角色,行许可权,安全功能,安全触发器,安全标号,安全标号组件,安全策略或可信上下文对象; 也适用于已激活行级别访问控制或列级别访问控制的表)
- DBADM 权限 (适用于除审计策略,角色,安全标号,安全标号组件,安全策略或可信上下文对象以外的所有对象)
请注意,对于表空间,存储器组或数据库分区组以及缓冲池,授权标识必须具有 SYSCTRL 或 SYSADM 权限。
语法
描述
- alias-designator
- ALIAS alias-name
- 指示将为别名添加或替换注释。 alias-name 必须标识当前服务器上存在的别名 (SQLSTATE 42704)。
- FOR TABLE、FOR MODULE 或 FOR SEQUENCE
- 指定该别名的对象类型。
- FOR TABLE
- 别名是表、视图或昵称的别名。 该注释将替换 SYSCAT.TABLES 目录视图。
- FOR MODULE
- 别名是模块的别名。 该注释将替换 SYSCAT.MODULES 目录视图。
- FOR SEQUENCE
- 别名是序列的别名。 该注释将替换描述别名的行的 SYSCAT.SEQUENCES 目录视图的 COMMENT 列的值。
如果指定了 PUBLIC ,那么 alias-name 必须标识当前服务器上存在的公用别名 (SQLSTATE 42704)。
- AUDIT POLICY POLICY-name
- 指示将为审计策略添加或替换注释。 policy-name 必须识别存在于当前服务器上的审计策略 (SQLSTATE 42704)。 注释将替换 SYSCAT.AUDITPOLICIES 描述审计策略的行的目录视图。
- COLUMN table-name.column-name 或 view-name.column-name
- 指示将添加或替换列的注释。 table-name.column-name 或 view-name.column-name 组合必须标识当前服务器上存在的列和表组合 (SQLSTATE 42704) ,但不能标识全局临时表 (SQLSTATE 42995)。 该注释将替换 SYSCAT.COLUMNS 目录视图。
- CONSTRAINT table-name.constraint-name
- 指示将为约束添加或替换注释。 table-name.constraint-name 组合必须标识约束及其约束的表; 它们必须存在于当前服务器上 (SQLSTATE 42704)。 该注释将替换 SYSCAT.TABCONST 目录视图。
- DATABASE PARTITION GROUP db-PARTITION-GROUP-name
- 指示将为数据库分区组添加或替换注释。 db-partition-group-name 必须标识当前服务器上存在的不同数据库分区组 (SQLSTATE 42704)。 注释将替换 SYSCAT.DBPARTITIONGROUPS 描述数据库分区组的行的目录视图。
- function-designator
- 指示将为函数添加或替换注释。 有关更多信息,请参阅 函数,方法和过程指示符。
无法对 SYSIBM , SYSIBMADM , SYSFUN 或 SYSPROC 模式 (SQLSTATE 42832) 中的函数进行注释。
该注释将替换 SYSCAT.ROUTINES 目录视图。
- FUNCTION MAPPING FUNCTION-MAPPING-name
- 指示将为函数映射添加或替换注释。 function-mapping-name 必须标识当前服务器上存在的函数映射 (SQLSTATE 42704)。 注释将替换 SYSCAT.FUNCMAPPINGS 目录视图。
- HISTOGRAM TEMPLATE TEMPLATE-name
- 指示将为直方图模板添加或替换注释。 template-name 必须标识当前服务器上存在的直方图模板 (SQLSTATE 42704)。 注释将替换 SYSCAT.HISTOGRAMTEMPLATES 目录视图。
- INDEX index-name
- 指示将为索引或索引规范添加或替换注释。 index-name 必须标识当前服务器上存在的相异索引或索引规范 (SQLSTATE 42704)。 注释将替换 SYSCAT.INDEXES 目录视图。
- MASK mask-name
- 标识应用注释的列掩码。 mask-name 必须标识当前服务器上存在的列掩码 (SQLSTATE 42704)。 注释放置在 SYSCAT.CONTROLS 目录表。
- MODULE module-name
- 指示将为模块添加或替换注释。 module-name 必须标识存在于当前服务器中的模块 (SQLSTATE 42704)。 指定的名称不得是模块的别名 (SQLSTATE 560CT)。 注释将替换 SYSCAT.MODULES 目录视图。
- NICKNAME nickname
- 指示将为昵称添加或替换注释。 nickname 必须是当前服务器上存在的昵称 (SQLSTATE 42704)。 注释将替换 SYSCAT.TABLES 目录视图。
- PACKAGE package-name
- 指示将为包添加或替换注释。 程序包名必须标识当前服务器上存在的程序包 (SQLSTATE 42704)。 注释将替换 SYSCAT.PACKAGES 目录视图。
- VERSION version-id
- 标识要对其进行注释的软件包版本。 如果未指定值,那么版本缺省设置为空字符串。 如果存在多个具有相同程序包名但不同版本的程序包,那么在 COMMENT 语句的一次调用中只能对一个程序包版本进行注释。 在以下情况下会使用双引号来定界版本标识:
- 由 VERSION(AUTO) 预编译器选项生成
- 以数字开头
- 包含小写或混合大小写字母
- PERMISSION permission-name
- 标识应用注释的行许可权。 permission-name 必须标识当前服务器上存在的行许可权 (SQLSTATE 42704 , SQLCODE -204)。 注释放置在 SYSCAT.CONTROLS 目录表。
- procedure-designator
- 指示将为过程添加或替换注释。 有关更多信息,请参阅 函数,方法和过程指示符。
无法对 SYSIBM , SYSIBMADM , SYSFUN 或 SYSPROC 模式中的过程进行注释 (SQLSTATE 42832)。
该注释将替换 SYSCAT.ROUTINES 目录视图。
- ROLE role-name
- 指示将为角色添加或替换注释。 role-name 必须标识当前服务器上存在的角色 (SQLSTATE 42704)。 该注释将替换 SYSCAT.ROLES 目录视图。
- SCHEMA schema-name
- 指示将为模式添加或替换注释。 schema-name 必须标识当前服务器上存在的模式 (SQLSTATE 42704)。 该注释将替换描述模式的行的 SYSCAT.SCHEMATA 目录视图的 COMMENT 列的值。
- 安全性标签 sec-label-name
- 指示将为名为 sec-label-name的安全标号添加或替换注释。 该名称必须使用安全策略进行限定,并且必须标识当前服务器上存在的安全标号 (SQLSTATE 42704)。 注释将替换描述安全标号的行的 SYSCAT.SECURITYLABELS 目录视图的 COMMENT 列的值。
- 安全标号组件 label-comp-name
- 指示将为名为 label-comp-name的安全标号组件添加或替换注释。 label-comp-name 必须标识当前服务器上存在的安全标号组件 (SQLSTATE 42704)。 注释将替换描述安全标号组件的行的 SYSCAT.SECURITYLABELCOMPONENTS 目录视图的 COMMENT 列的值。
- SECURITY POLICY label-pol-name
- 指示将为名为 label-pol-name的安全策略添加或替换注释。 label-pol-name 必须标识当前服务器上存在的安全策略 (SQLSTATE 42704)。 该注释将替换描述安全策略的行的 SYSCAT.SECURITYPOLICIES 目录视图的 COMMENT 列的值。
- SEQUENCE sequence-name
- 指示将为序列添加或替换注释。 sequence-name 必须标识当前服务器上存在的序列 (SQLSTATE 42704)。 注释将替换描述序列的行的 SYSCAT.SEQUENCES 目录视图的 COMMENT 列的值。
- SERVER server-name
- 指示将为数据源添加或替换注释。 server-name 必须标识当前服务器上存在的数据源 (SQLSTATE 42704)。 该注释将替换描述数据源的行的 SYSCAT.SERVERS 目录视图的 COMMENT 列的值。
- SERVER OPTION server-option-name for 远程服务器
- 指示将为服务器选项添加或替换注释。
- server-option-name
- 标识服务器选项。 此选项必须是当前服务器上存在的选项 (SQLSTATE 42704)。 该注释将替换描述服务器选项的行的 SYSCAT.SERVEROPTIONS 目录视图的 COMMENT 列的值。
- 远程服务器
- 描述 server-option 应用于的数据源。
- SERVER server-name
- 对 server-option 应用的数据源进行命名。 server-name 必须标识当前服务器上存在的数据源。
- TYPE server-type
- 指定 server-option 适用的数据源类型 (例如 Db2® for z/OS® 或 Oracle) 。 服务器类型 可以以小写或大写形式指定; 它将以大写形式存储在目录中。
- VERSION
- 指定由 server-name标识的数据源的版本。
- version
- 指定版本号。 version 必须是整数。
- release
- 指定由 version 表示的版本的发行版号。 release 必须是整数。
- mod
- 指定由 release 表示的发行版的修订版号。 mod 必须是整数。
- version-string-constant
- 指定版本的完整名称。 version-string-constant 可以是单个值 (例如, "8i"); 也可以是 version, release以及 (如果适用) mod (例如, "8.0.3") 的并置值。
- WRAPPER wrapper-name
- 标识用于访问 server-name 所引用的数据源的包装程序。
- service-class-designator
- SERVICE CLASS service-class-name
- 指示将为服务类添加或替换注释。 service-class-name 必须标识当前服务器上存在的服务类 (SQLSTATE 42704)。 要添加或替换服务子类的注释,必须使用 UNDER 子句指定 service-superclass-name 。 注释将替换描述服务类的行的 SYSCAT.SERVICECLASSES 目录视图的 COMMENT 列的值。
- UNDER service-superclass-name
- 当添加或替换服务子类的注释时,指定服务子类的服务超类。 service-superclass-name 必须标识当前服务器上存在的服务超类 (SQLSTATE 42704)。
- STOGROUP storagegroup-name
- 指示将为存储器组添加或替换注释。 storagegroup-name 必须标识当前服务器上存在的不同存储器组 (SQLSTATE 42704)。 该注释将替换描述存储器组的行的 SYSCAT.STOGROUPS 目录视图的 COMMENT 列的值。
- TABLE table-name 或 view-name
- 指示将为表或视图添加或替换注释。 table-name 或 view-name 必须标识当前服务器上存在的表或视图 (不是别名或昵称) (SQLSTATE 42704) ,并且不能标识已声明的临时表 (SQLSTATE 42995)。 注释将替换 SYSCAT.TABLES 目录视图。
- TABLESPACE 表空间名称
- 指示将为表空间添加或替换注释。 tablespace-name 必须标识当前服务器上存在的相异表空间 (SQLSTATE 42704)。 注释将替换 SYSCAT.TABLESPACES 目录视图。
- THRESHOLD threshold-name
- 指示将为阈值添加或替换注释。 threshold-name 必须识别存在于当前服务器上的阈值 (SQLSTATE 42704)。 注释将替换 SYSCAT.THRESHOLDS 目录视图。
- TRIGGER trigger-name
- 指示将为触发器添加或替换注释。 trigger-name 必须标识当前服务器上存在的不同触发器 (SQLSTATE 42704)。 注释将替换 SYSCAT.TRIGGERS 目录视图。
- TRUSTED CONTEXT CONTEXT-name
- 指示将为可信上下文添加或替换注释。 context-name 必须识别存在于当前服务器上的可信上下文 (SQLSTATE 42704)。 注释将替换 SYSCAT.CONTEXTS 目录视图。
- TYPE type-name
- 指示将为用户定义的类型添加或替换注释。 type-name 必须标识当前服务器上存在的用户定义的类型 (SQLSTATE 42704)。 该注释将替换 SYSCAT.DATATYPES 目录视图。
在动态 SQL 语句中,使用 CURRENT SCHEMA 专用寄存器作为未限定的对象名的限定符。 在静态 SQL 语句中,QUALIFIER 预编译/绑定选项隐式地指定未限定的对象名的限定符。
- TYPE MAPPING type-mapping-name
- 指示将为用户定义的数据类型映射添加或替换注释。 type-mapping-name 必须标识当前服务器上存在的数据类型映射 (SQLSTATE 42704)。 注释将替换 SYSCAT.TYPEMAPPINGS 目录视图。
- USAGE LIST USAGE-LIST-name
- 指示将为用法列表添加或替换注释。 usage-list-name 必须标识当前服务器上存在的用法列表 (SQLSTATE 42704)。 注释将替换 SYSCAT.USAGELISTS 目录视图。
- VARIABLE variable-name
- 指示将为全局变量添加或替换注释。 variable-name 必须识别存在于当前服务器上的全局变量 (SQLSTATE 42704)。 注释将替换 SYSCAT.VARIABLES 目录视图。
- WORK ACTION SET WORK-ACTION-SET-name
- 指示将为工作操作集添加或替换注释。 work-action-set-name 必须标识存在于当前服务器上的工作操作集 (SQLSTATE 42704)。 注释将替换 SYSCAT.WORKACTIONSETS 目录视图。
- WORK CLASS SET WORK-class-SET-name
- 指示将为工作类集添加或替换注释。 work-class-set-name 必须标识在当前服务器上存在的工作类集 (SQLSTATE 42704)。 注释将替换 SYSCAT.WORKCLASSSETS 目录视图。
- WORKLOAD workload-name
- 指示将为工作负载添加或替换注释。 工作负载名称 必须识别当前服务器上存在的工作负载 (SQLSTATE 42704)。 注释将替换 SYSCAT.WORKLOADS 描述工作负载的行的目录视图。
- WRAPPER wrapper-name
- 指示将为包装器添加或替换注释。 wrapper-name 必须标识当前服务器上存在的包装器 (SQLSTATE 42704)。 注释将替换 SYSCAT.WRAPPERS 目录视图。
- XSROBJECT xsrobject-name
- 指示将为 XSR 对象添加或替换注释。 xsrobject-name 必须标识当前服务器上存在的 XSR 对象 (SQLSTATE 42704)。 注释将替换 SYSCAT.XSROBJECTS 描述 XSR 对象的行的目录视图。
- IS 字符串常量
- 指定要添加或替换的注释。 string-constant 可以是最多 254 个字节的任何字符串常量。 (回车符和换行符每个计数为 1 字节。)
- table-name|view-name ({ column-name IS string-constant } ...)
- 此格式的 COMMENT 语句提供了为表或视图的多个列指定注释的能力。 列名称不得限定,每个名称必须标识指定表或视图的列,并且表或视图必须存在于当前服务器上。 table-name 不能是已声明的临时表 (SQLSTATE 42995)。
不能对不可用视图的列进行注释 (SQLSTATE 51024)。
注意
- 语法替换:与先前版本的 DB2 及其他数据库产品的兼容性支持下列语法替换。 这些备用项是非标准的,不应使用。
- 可指定 NODEGROUP 来代替 DATABASE PARTITION GROUP
- 可以指定 DISTINCT TYPE TYPE-name 来代替类型 TYPE-name
- 可以指定 DATA TYPE TYPE-name 来替代类型 TYPE-name
- 可以指定 SYNONYM 代替 ALIAS
示例
- 示例 1: 为 EMPLOYEE 表添加注释。
COMMENT ON TABLE EMPLOYEE IS 'Reflects first quarter reorganization' - 示例 2: 为 EMP_VIEW1 视图添加注释。
COMMENT ON TABLE EMP_VIEW1 IS 'View of the EMPLOYEE table without salary information' - 示例 3: 为 EMPLOYEE 表的 EDLEVEL 列添加注释。
COMMENT ON COLUMN EMPLOYEE.EDLEVEL IS 'highest grade level passed in school' - 示例 4: 为 EMPLOYEE 表的两个不同列添加注释。
COMMENT ON EMPLOYEE (WORKDEPT IS 'see DEPARTMENT table for names', EDLEVEL IS 'highest grade level passed in school' ) - 示例 5: 研究员希望使用特征符来标识要注释的特定函数,对他在其 PELLOW 模式中创建的 CENTRE 函数进行注释。
COMMENT ON FUNCTION CENTRE (INT,FLOAT) IS 'Frank''s CENTRE fctn, uses Chebychev method' - 示例 6: McBride 想要对她在 PELLOW 模式中创建的另一个 CENTRE 函数进行注释,使用特定名称来标识要对其进行注释的函数实例:
COMMENT ON SPECIFIC FUNCTION PELLOW.FOCUS92 IS 'Louise''s most triumphant CENTRE function, uses the Brownian fuzzy-focus technique' - 示例 7: 对 CHEM 模式中的函数 ATOMIC_WEIGHT 进行注释,其中已知只有一个具有该名称的函数:
COMMENT ON FUNCTION CHEM.ATOMIC_WEIGHT IS 'takes atomic nbr, gives atomic weight' - 示例 8: Eigler 想要对 SEARCH 过程 (他在其 EIGLER 模式中创建) 进行注释,使用特征符来标识要注释的特定过程。
COMMENT ON PROCEDURE SEARCH (CHAR,INT) IS 'Frank''s mass search and replace algorithm' - 示例 9: Macdonald 想要对他在 EIGLER 模式中创建的另一个 SEARCH 函数进行注释,使用特定名称来标识要注释的过程实例:
COMMENT ON SPECIFIC PROCEDURE EIGLER.DESTROY IS 'Patrick''s mass search and destroy algorithm' - 示例 10: 对 BIOLOGY 模式中的 PROCEDURE 进行注释,其中已知只有一个具有该名称的过程:
COMMENT ON PROCEDURE BIOLOGY.OSMOSIS IS 'Calculations modelling osmosis' - 示例 11: 对名为 INDEXSPEC 的索引规范进行注释。
COMMENT ON INDEX INDEXSPEC IS 'An index specification that indicates to the optimizer that the table referenced by nickname NICK1 has an index.' - 示例 12: 对缺省名称为 NET8的包装程序进行注释。
COMMENT ON WRAPPER NET8 IS 'The wrapper for data sources associated with Oracle's Net8 client software.' - 示例 13: 对 XML 模式 HR.EMPLOYEE。
COMMENT ON XSROBJECT HR.EMPLOYEE IS 'This is the base XML Schema for employee data.' - 示例 14: 为可信上下文 APPSERVER 创建注释。
COMMENT ON TRUSTED CONTEXT APPSERVER IS 'WebSphere Server' - 示例 15: 为列掩码 M1创建注释。
COMMENT ON MASK M1 IS 'Column mask for column EMP.SALARY'
