COMMENT 语句

COMMENT 语句在各种对象的目录描述中添加或替换注释。

调用

此语句可以嵌入在应用程序中,也可通过动态 SQL 语句来发出。 它是一个可执行语句,仅当 DYNAMICRULES 运行行为对于程序包有效时才能动态编译 (SQLSTATE 42509)。

权限

语句授权标识所拥有的特权必须至少包括下列其中一项权限:
  • 对象的所有者 (列或约束的底层表) ,记录在对象的目录视图的 OWNER 列中
  • 对模式的 ALTERIN 特权 (仅适用于允许多个部分名称的对象)
  • 对对象的 CONTROL 特权 (仅适用于索引,包,表或视图对象)
  • 对对象的 ALTER 特权 (仅适用于表对象)
  • CREATE_SECURE_OBJECT 权限 (仅适用于安全功能或安全触发器)
  • WITH ADMIN OPTION (仅适用于角色)
  • 对模式的 SCHEMAADM 权限 (仅适用于允许多个部分名称的对象)
  • WLMADM 权限 (仅适用于工作负载管理器对象)
  • SECADM 权限 (仅适用于审计策略,列掩码,角色,行许可权,安全功能,安全触发器,安全标号,安全标号组件,安全策略或可信上下文对象; 也适用于已激活行级别访问控制或列级别访问控制的表)
  • DBADM 权限 (适用于除审计策略,角色,安全标号,安全标号组件,安全策略或可信上下文对象以外的所有对象)

请注意,对于表空间,存储器组或数据库分区组以及缓冲池,授权标识必须具有 SYSCTRL 或 SYSADM 权限。

语法

Read syntax diagramSkip visual syntax diagramCOMMENT ONobjectsISstring-constanttable-nameview-name(,column-nameISstring-constant)
objects
Read syntax diagramSkip visual syntax diagramalias-designatorAUDIT POLICYpolicy-nameCOLUMNtable-name.column-nameview-name.column-nameCONSTRAINTtable-name.constraint-nameDATABASE PARTITION GROUPdb-partition-group-namefunction-designatorFUNCTION MAPPINGfunction-mapping-nameHISTOGRAM TEMPLATEtemplate-nameINDEXindex-name1MASKmask-nameMODULEmodule-nameNICKNAMEnicknamePACKAGEpackage-nameVERSIONversion-idPERMISSIONpermission-nameprocedure-designatorROLErole-nameSCHEMAschema-nameSECURITY LABELsec-label-nameSECURITY LABEL COMPONENTlabel-comp-nameSECURITY POLICYlabel-pol-nameSEQUENCEsequence-nameSERVERserver-nameSERVER OPTIONserver-option-nameFORremote-serverservice-class-designatorSTOGROUPstoragegroup-nameTABLEtable-nameview-nameTABLESPACEtablespace-nameTHRESHOLDthreshold-nameTRIGGERtrigger-nameTRUSTED CONTEXTcontext-nameTYPEtype-nameTYPE MAPPINGtype-mapping-nameUSAGE LISTusage-list-nameVARIABLEvariable-nameWORK ACTION SETwork-action-set-nameWORK CLASS SETwork-class-set-nameWORKLOADworkload-nameWRAPPERwrapper-nameXSROBJECTxsrobject-name
alias-designator
Read syntax diagramSkip visual syntax diagramPUBLICALIASalias-nameFOR TABLEFOR MODULEFOR SEQUENCE
function-designator
Read syntax diagramSkip visual syntax diagramFUNCTIONfunction-name(,data-type)SPECIFIC FUNCTIONspecific-name
procedure-designator
Read syntax diagramSkip visual syntax diagramPROCEDUREprocedure-name(,data-type)SPECIFIC PROCEDUREspecific-name
remote-server
Read syntax diagramSkip visual syntax diagramSERVERserver-nameSERVER TYPEserver-typeVERSIONserver-versionWRAPPERwrapper-name
server-version
Read syntax diagramSkip visual syntax diagramversion.release.modversion-string-constant
service-class-designator
Read syntax diagramSkip visual syntax diagramSERVICE CLASSservice-class-nameUNDERservice-superclass-name
Notes:
  • 1 Index-name can be the name of either an index or an index specification.

描述

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-nameview-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"); 也可以是 versionrelease以及 (如果适用) 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-nameview-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'