COMMENT 语句
COMMENT语句用于在当前服务器的 Db2 目录中添加或替换各种对象的描述中的注释。
调用 COMMENT
此语句可嵌入应用程序中或者以交互方式发出。 它是可动态准备的可执行语句。
授权 COMMENT
要评论以下对象,权限集必须至少包含以下列出的一个权威机构或权限:
- 表、视图、索引、列或表的别名或视图:
- 表格、视图、别名或索引的所有权
- DBADM 数据库权限(仅限表格和索引)
- SYSADM 或 SYSCTRL 权限
- 系统 DBADM
- SECADM权限(如果表格具有激活的行权限或列访问控制)
如果数据库是隐式创建的,则数据库权限必须位于隐式数据库或 DSNDB04 上。
用户定义类型、全局变量、存储过程、触发器或用户定义函数:
对象的所有权
- 模式上的ALTERIN权限(用于添加注释)
- SYSADM 或 SYSCTRL 权限
- 系统 DBADM
- 安全触发或安全用户自定义功能:
- SECADM 权限
- CREATE_SECURE_OBJECT权限
- 包:
- 套餐所有权
- 由包裹所有者授予的BINDAGENT特权
- PACKADM 授权收集或所有收藏
- SYSADM 或 SYSCTRL 权限
- 系统 DBADM
- 角色或可信环境:
- 对象的所有权
- SYSADM 或 SYSCTRL 权限
- SECADM
如果安装参数“单独安全”为“否”,则 SYSADM 权限具有隐式 SECADM 和 SYSCTRL 权限,可以删除角色或可信上下文。
- 序列或序列别名:
- 序列的所有权
- 如果目标是一个序列,则序列的ALTER权限
- 架构上的ALTERIN权限
- SYSADM 或 SYSCTRL 权限
- 系统 DBADM
与模式名称匹配的授权ID隐式拥有该模式的ALTERIN权限。
- 行许可或列掩码:
- SECADM 权限
权限设置:
如果语句嵌入到应用程序中,权限集就是计划或软件包所有者所拥有的权限。 如果语句是动态准备的,则权限集由有效的 DYNAMICRULES 行为(运行、绑定、定义或调用)决定,并在动态 SQL 语句准备和执行中进行了总结。 (有关这些行为的更多信息,包括决定这些行为的 DYNAMICRULES 绑定选项值列表,请参阅授权 ID 和动态 SQL )

语法 COMMENT
alias-designator
多列列表
function-designator
参数类型
数据类型
built-in-type

描述 COMMENT
- alias-designator
- ALIAS 别名
- 表示将为别名添加或替换评论。 该名称必须标识当前服务器上存在的别名。
如果指定了PUBLIC关键字,则别名必须标识当前服务器上存在的公共别名。 该评论适用于公开别名。
- FOR TABLE
- 指定别名用于表或视图。 该注释将替换 SYSIBM.SYSTABLES 目录表中描述别名的行的备注列的值。
- FOR SEQUENCE
- 指定别名为序列。 该注释将替换 SYSIBM.SYSSEQUENCES 目录表中描述别名的行的备注列的值。
- COLUMN 或 table-name.column-name 或者 view-name.column-name
- 确定评论适用的列。 名称必须标识当前服务器上存在的一列或视图。 名称不得用于标识已声明的临时表的列。 评论被放置在 SYSIBM.SYSCOLUMNS 目录表的备注栏中,用于描述列的行。请勿使用TABLE或COLUMN对表格或视图中多列进行评论。 请输入表格或视图名称,然后在括号中以列表形式输入:
column-name IS string-constant, column-name IS string-constant,…列名不能有修饰语,每个名称必须标识指定表或视图的列,且该表或视图必须在当前服务器上存在。
- FUNCTION 或者 SPECIFIC FUNCTION
- 确定评论适用的功能。 当前服务器上必须存在该函数,且该函数必须是由CREATE FUNCTION语句定义的函数,或由CREATE TYPE语句生成的转换函数。 该注释被放置在 SYSIBM.SYSROUTINES 目录表的备注栏中,用于描述功能的行。
可通过名称、函数签名或特定名称来识别函数。 如果函数定义了表参数(在CREATE FUNCTION语句中指定了LIKE TABLE,表示输入参数之一是转换表),则必须使用函数名称(如果函数名称是唯一的)或特定名称来标识函数。
- FUNCTION 功能名称
- 通过功能名称识别功能。 模式中必须有且仅有一个名为“function-name”的函数。 该函数可以有任意数量的输入参数。 如果模式中不包含名为function-name的函数,或者模式中包含多个同名函数,则返回错误。
- FUNCTION 函数名 (参数类型 ,……)
- 通过函数签名识别 SQL 函数,该签名是函数的唯一标识。 显式或隐式指定的模式中必须存在具有函数签名(function signature)的函数。
如果指定了函数名称(function-name() ),则该函数必须不带参数。
- 功能名称
- 标识函数名称。 如果函数定义时带有表参数( LIKE TABLE 姓名 AS LOCATOR 如果在 CREATE FUNCTION 语句中指定了 子句来指示输入参数之一是转换表),则函数签名不能用于唯一地标识该函数。 请使用其他语法变体之一来识别函数,如果函数名称是唯一的,则使用函数名称,否则使用特定名称。
- (参数类型 ,……)
- 指定函数的输入参数数量以及每个参数的名称和数据类型。
- (数据类型 ,……)
- 确定函数的输入参数数量和每个参数的数据类型。 每个参数的数据类型必须与CREATE FUNCTION语句中相应位置参数指定的数据类型相匹配。 数据类型的数量和数据类型的逻辑连接用于唯一地标识功能。
对于具有长度、精度或比例属性的数据类型,您可以使用一组空括号、指定一个值或接受默认值:
- 空括号表示在判断数据类型是否匹配时, Db2 将忽略该属性。
例如,DEC()将被视为与数据类型为DEC(7,2)的函数参数匹配。 同样,DECFLOAT()将被视为与DECFLOAT(16)或DECFLOAT(34)匹配。
不能在空括号中指定 FLOAT,因为其参数值表示不同的数据类型(REAL 或 DOUBLE)。
- 如果您对长度、精度或比例属性使用特定值,则该值必须与CREATE FUNCTION语句中(隐式或显式)指定的值完全匹配。
FLOAT(n) 的特定值不必与源函数的定义值完全匹配,因为
1<=n<= 21表示REAL,而22<=n<=53表示DOUBLE。 匹配基于数据类型是REAL还是DOUBLE。 - 如果未明确指定长度、精度或比例,且未指定空括号,则默认数据类型长度。 隐式长度必须与CREATE FUNCTION语句中(隐式或显式)指定的值完全匹配。
对于具有子类型或编码方案属性的数据类型,指定 FOR 子类型 DATA 子句或 CCSID 子句是可选的。 省略任一子句表示 Db2 在确定数据类型是否匹配时忽略该属性。 如果您指定了任一子句,则它必须与CREATE FUNCTION语句中隐式或显式指定的值相匹配。
- 空括号表示在判断数据类型是否匹配时, Db2 将忽略该属性。
- AS LOCATOR
- 指定函数定义为接收此参数的定位器。 如果指定了 AS LOCATOR,则数据类型必须为 LOB 或基于 LOB 的不同类型。
- SPECIFIC FUNCTION 专有名词
- 通过特定名称识别用户自定义的特定功能。 名称隐含或明确地带有模式名称。 模式中必须存在具有特定名称的函数。 如果特定名称没有限定,则隐含地使用模式名称进行限定,如 FUNCTION 函数名称。
- 活动版本
- 指定该注释适用于函数名指定的当前活动版本的例程。
默认值为“活动版本 ”。
- VERSION 常规版本ID
- 指定该注释仅适用于由 routine-version-id 标识的例程版本。 routine-version-id 必须标识当前服务器上已存在的指定例程的版本。
- INDEX 索引名称
- 确定评论适用的索引。 索引名称必须标识当前服务器上存在的索引。 注释被放置在 SYSIBM.SYSINDEXES 目录表的备注栏中,用于描述索引的行。
- MASK 假名
- 标识评论所适用的列掩码。 mask-name 必须标识当前服务器上存在的列掩码。 该注释被放置在 SYSIBM.SYSCONTROLS 目录表的备注栏中,用于描述列掩码的行。
- PACKAGE collection-id.package-name
- 确定评论所适用的软件包。 您必须使用集合ID限定包名称。 collection-id.package-name 必须确定当前服务器上是否存在该包。 名称加上隐式或显式指定的版本号必须能够标识当前服务器上存在的软件包。 省略version-id 即隐式指定空版本。
名称不得识别触发器包或与SQL例程相关的包。 指定此条款,用于评论通过BIND COPY命令创建的包,该命令用于部署本机SQL过程的版本。
- VERSION 版本号
- version-id 是创建 DBRM 时分配给包的 DBRM 的版本标识符。 如果未指定版本标识符 ,则使用空版本作为版本标识符。
在以下情况下,请定义版本标识符:
- 由 VERSION(AUTO) 预编译器选项生成
- 以数字开头
- 包含小写或混合大小写字母
有关版本标识符的更多信息,请参阅创建程序包版本中有关准备应用程序以供执行的信息。
- PERMISSION 权限名称
- 标识评论适用的行权限。 permission-name 必须标识当前服务器上存在的行权限。 该注释被放置在 SYSIBM.SYSCONTROLS 目录表的备注栏中,用于描述行权限。
- PLAN 计划名称
- 确定评论所适用的计划。 计划名称必须标识当前服务器上存在的计划。
- PROCEDURE 程序名
- 确定评论适用的程序。 程序名必须标识当前服务器上存在的程序。
- 活动版本
- 指定该注释适用于由过程名称指定的当前活动版本的例程。
默认值为“活动版本 ”。
- VERSION 常规版本ID
- 指定该注释仅适用于由 routine-version-id 标识的例程版本。 routine-version-id 必须标识当前服务器上已存在的指定例程的版本。
- ROLE 角色名称
- 确定评论适用的角色。 角色名称必须标识当前服务器上存在的角色。 评论被放置在 SYSIBM.SYSROLES 目录表的备注栏中,用于描述角色的行。
- SEQUENCE 序列名
- 确定评论适用的序列。
序列名必须标识当前服务器上存在的序列。 序列名不能是 Db2 使用的内部序列对象的名称。 注释被放置在 SYSIBM.SYSSEQUENCES 目录表的备注栏中,用于描述序列的行。
- TABLE 表名 或 视图名
- 标识评论适用的表格或视图。 表名或视图名必须标识当前服务器上存在的表、辅助表或视图。 表名不能标识已声明的临时表。 评论被放置在 SYSIBM.SYSTABLES 目录表的备注栏中,用于描述表格或视图的行。
- TRIGGER 触发器名称
- 确定评论适用的触发器。 触发器名称必须标识当前服务器上存在的触发器。 注释将放在 SYSIBM.SYSTRIGGERS 目录表中描述触发器或触发器版本的行的 REMARKS 列中。

- 活动版本
- 指定该注释适用于触发器名称指定的当前活动版本。
默认值为“活动版本 ”。
ACTIVE VERSION 只能为高级触发器指定。
VERSION trigger-version-id
FL 500指定注释仅适用于 trigger-version- id 标识的触发器版本。 trigger-version-id 必须标识当前服务器上已存在的指定触发器的版本。仅当使用高级触发器时,才需要指定版本。


- TRUSTED CONTEXT 上下文名称
- 确定评论适用的可信上下文。 context-name 必须标识当前服务器上存在的可信上下文。 该注释被放置在 SYSIBM.SYSCONTEXT 目录表的备注栏中,用于描述可信上下文。
- TYPE 类型名称
- 标识用户定义的注释类型。 类型名必须标识当前服务器上存在的一个用户定义的类型。 该注释被放置在 SYSIBM.SYSDATATYPES 目录表的备注栏中,用于描述用户自定义类型的那一行。
- VARIABLE 变量名
- 标识注释所适用的全局变量。 变量名必须标识当前服务器上存在的全局变量。 变量名不能标识内置的全局变量。
- IS 常量字符串
- 请在此处输入您想发表的评论。 string-constant 可以是任何不超过762字节的SQL字符串常量。
- 多列列表
- 若要使用一条COMMENT语句对表格或视图中的多个列进行注释,请指定表格或视图名称,并在括号中列出以下格式的列表:
(column-name IS string-constant, column-name IS string-constant, ...)每个列名都不能有修饰语,必须标识当前服务器上存在的一个指定表或视图的列。
备注 COMMENT
- 其他语法和同义词:
- 为了与 Db2 的早期版本或 Db2 系列中的其他产品兼容, Db2 支持以下语法替代方案:
- 数据类型或唯一类型作为类型的一个同义词
- COMMENT ON ALIAS SYSPUBLIC.name 可以指定为 COMMENT ON PUBLIC ALIAS SYSPUBLIC.name 的替代名称
例子 COMMENT
COMMENT ON TABLE DSN8C10.EMP
IS 'REFLECTS 1ST QTR 81 REORG'; COMMENT ON TABLE DSN8C10.VDEPT
IS 'VIEW OF TABLE DSN8C10.DEPT'; COMMENT ON COLUMN DSN8C10.DEPT.DEPTNO
IS 'DEPARTMENT ID - UNIQUE'; COMMENT ON DSN8C10.DEPT
(MGRNO IS 'EMPLOYEE NUMBER OF DEPARTMENT MANAGER',
ADMRDEPT IS 'DEPARTMENT NUMBER OF ADMINISTERING DEPARTMENT'); COMMENT ON TYPE DOCUMENT
IS 'CONTAINS DATE, TABLE OF CONTENTS, BODY, INDEX, and GLOSSARY'; COMMENT ON FUNCTION CHEM.ATOMIC_WEIGHT
IS 'TAKES ATOMIC NUMBER AND GIVES ATOMIC WEIGHT'; COMMENT ON FUNCTION CENTER (INTEGER, FLOAT)
IS 'USES THE CHEBYCHEV METHOD'; COMMENT ON SPECIFIC FUNCTION JOHNSON.FOCUS97
IS 'USES THE SQUARING TECHNIQUE'; COMMENT ON PROCEDURE BIOLOGY.OSMOSIS
IS 'CALCULATIONS THAT MODEL OSMOSIS'; COMMENT ON TRIGGER BONUS
IS 'LIMITS BONUSES TO 10% OF SALARY'; COMMENT ON COLLIDA.MYPKG
IS 'THIS IS MY PACKAGE'; COMMENT ON ROLE ROLE1
IS 'Role defined for trusted context, ctx1'; COMMENT ON TRUSTED CONTEXT CTX1
IS 'WEBSPHERE SERVER'; COMMENT ON MASK M1
IS 'Column mask for column EMP.SALARY';