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

阅读语法图跳过可视化语法图 COMMENT ON alias-designatorCOLUMNtable-name视图名称. 列名function-designatorACTIVE VERSIONVERSION常规版本IDINDEX索引名称PACKAGE收藏-ID. 程序包名VERSION版本号PLAN计划名称PROCEDURE程序名ACTIVE VERSIONVERSION常规版本IDROLE角色名称SEQUENCE序列名TABLEtable-name视图名称TRIGGER触发器名称ACTIVE VERSIONVERSION触发器版本IDTRUSTED CONTEXT上下文名称TYPEtype-nameMASK假名PERMISSION权限名称VARIABLE变量名IS常量字符串多列列表

alias-designator

阅读语法图跳过可视化语法图 PUBLIC1 ALIAS 别名 FOR TABLEFOR SEQUENCE
注意:
  • 1 如果指定了“公开”,则必须同时指定“顺序”。

多列列表

阅读语法图跳过可视化语法图 table-name视图名称 (,列名IS常量字符串)

function-designator

阅读语法图跳过可视化语法图FUNCTION功能名称(,参数类型)SPECIFIC FUNCTION专有名词

参数类型

阅读语法图跳过可视化语法图数据类型AS LOCATOR1
注意:
  • 1 AS LOCATOR只能用于LOB数据类型或基于LOB数据类型的特定类型。

数据类型

阅读语法图跳过可视化语法图built-in-type独特类型名称数组类型名称

built-in-type

阅读语法图跳过可视化语法图SMALLINTINTEGERINTBIGINTDECIMALDECNUMERIC(5,0)( 整数整数)FLOAT(53)( 整数)REALDOUBLEPRECISIONDECFLOAT(34)(16)CHARACTERCHAR(1)( 整数)CHARACTERCHARVARYINGVARCHAR( 整数)CCSIDASCIIEBCDICUNICODEFORSBCSMIXEDBITDATACHARACTERCHARLARGE OBJECTCLOB(1M)( 整数KMG)CCSIDASCIIEBCDICUNICODEFORSBCSMIXEDDATAGRAPHIC(1)( 整数)VARGRAPHIC(整数)DBCLOB(1M)( 整数KMG)CCSIDASCIIEBCDICUNICODEBINARY(1)( 整数)BINARY VARYINGVARBINARY( 整数)BINARY LARGE OBJECTBLOB(1M)( 整数KMG)DATETIMETIMESTAMP(6)(整数)WITHOUT TIME ZONEWITH TIME ZONEROWID
更改结束

描述 COMMENT

alias-designator
ALIAS 别名
表示将为别名添加或替换评论。 该名称必须标识当前服务器上存在的别名。

如果指定了PUBLIC关键字,则别名必须标识当前服务器上存在的公共别名。 该评论适用于公开别名。

FOR TABLE
指定别名用于表或视图。 该注释将替换 SYSIBM.SYSTABLES 目录表中描述别名的行的备注列的值。
FOR SEQUENCE
指定别名为序列。 该注释将替换 SYSIBM.SYSSEQUENCES 目录表中描述别名的行的备注列的值。
COLUMNtable-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语句中隐式或显式指定的值相匹配。

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

示例1 :在表DSN8C10.EMP 中输入注释。
   COMMENT ON TABLE DSN8C10.EMP
     IS 'REFLECTS 1ST QTR 81 REORG';
示例2在DSN8C10.VDEPT 视图上输入评论。
   COMMENT ON TABLE DSN8C10.VDEPT
     IS 'VIEW OF TABLE DSN8C10.DEPT';
例 3: 在表 DSN8C10 的 DEPTNO 列上输入注释。DEPT
   COMMENT ON COLUMN DSN8C10.DEPT.DEPTNO
     IS 'DEPARTMENT ID - UNIQUE';
示例 4: 在表 DSN8C10. DEPT 中的两列中输入注释。
   COMMENT ON DSN8C10.DEPT
     (MGRNO IS 'EMPLOYEE NUMBER OF DEPARTMENT MANAGER',
      ADMRDEPT IS 'DEPARTMENT NUMBER OF ADMINISTERING DEPARTMENT');
示例 5 :假设您是 SMITH,在模式 SMITH 中创建了文档这一独特类型。 在文档中输入评论。
   COMMENT ON TYPE DOCUMENT
     IS 'CONTAINS DATE, TABLE OF CONTENTS, BODY, INDEX, and GLOSSARY';
示例 6: 假设您是 SMITH,并且知道 ATOMIC_WEIGHT 是 CHEM 模式中唯一具有该名称的函数。 请输入对原子量的评论。
   COMMENT ON FUNCTION CHEM.ATOMIC_WEIGHT
     IS 'TAKES ATOMIC NUMBER AND GIVES ATOMIC WEIGHT';
示例7 :假设您是SMITH,在模式SMITH中创建了CENTER函数。 在 CENTER 上输入评论,使用签名来唯一标识函数实例。
   COMMENT ON FUNCTION CENTER (INTEGER, FLOAT)
     IS 'USES THE CHEBYCHEV METHOD';
示例8 :假设您是SMITH,在模式JOHNSON中创建了另一个名为CENTER的函数。 您为该功能取了特定的名字 FOCUS97。 在 CENTER 上输入评论,使用特定名称来标识函数实例。
   COMMENT ON SPECIFIC FUNCTION JOHNSON.FOCUS97
     IS 'USES THE SQUARING TECHNIQUE';
示例9 :假设您是SMITH,程序OSMOSIS位于BIOLOGY模式中。 在OSMOSIS上发表评论。 您的意见将适用于当前正在使用的OSMOSIS版本。
   COMMENT ON PROCEDURE BIOLOGY.OSMOSIS
     IS 'CALCULATIONS THAT MODEL OSMOSIS';
示例11 :假设您是SMITH,并且您的架构中存在触发器BONUS。 在BONUS上输入评论。
   COMMENT ON TRIGGER BONUS
     IS 'LIMITS BONUSES TO 10% OF SALARY';
示例12 :为COLLIDA集合中的MYPKG软件包提供评论。
   COMMENT ON COLLIDA.MYPKG
     IS 'THIS IS MY PACKAGE';
例14 :请对角色发表评论 ROLE1:
   COMMENT ON ROLE ROLE1 
     IS 'Role defined for trusted context, ctx1';
示例15 :对可信上下文提供评论 CTX1:
   COMMENT ON TRUSTED CONTEXT CTX1 
     IS 'WEBSPHERE SERVER';
示例15 :对列掩码发表评论 M1:
   COMMENT ON MASK M1 
     IS 'Column mask for column EMP.SALARY';