可以使用 ALTER ACCESS_METHOD 语句更改一个或多个 sysams 系统目录表
中用户定义的主或从的存取方法的属性。
语法
元素
描述
限制
语法
access_method 要更改的
存取方法
的名称
存取方法必须由先前的
CREATE ACCESS_METHOD 语句
在 sysams 系统目录表中注
册
标识符
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 31
元素
描述
限制
语法
owner
存取方法
所有者的
名称
必须拥有该存取方法
所有者名称
purpose
_keyword
表示要更
改的特征
的关键字
关键字必须通过先前的
CREATE 或 ALTER
ACCESS_METHOD 语句和存取
方法相关联
用途函数、标
志和值
用法
该语句是 SQL ANSI/ISO 标准的扩展。该语句无法修改内置的存取方法。
使用 ALTER ACCESS_METHOD 更改用户定义存取方法的定义。您无法修改内
置的存取方法。
您必须是该存取方法的所有者或具有修改用户定义存取方法的 DBA 特权。在符
合 ANSI 的数据库中,如果另一个用户是该存取方法的所有者,那么 DBA 必须
限定该存取方法的名称。
当更改存取方法时,您同时更改了定义该存取方法的目的选项规范(目的函数、
目的标志或目的值)。例如,您可以更改一个存取方法以分配一个新的用户定义
的函数或方法名称,或为一个表的扫描成本提供乘数。
如果事务正在处理中,则数据库服务器将等待修改存取方法,直接提交或回滚该
事务。该事务完成之前,其他任何用户都无法执行该存取方法。
示例
以下语句更改了 remote 用户定义的存取方法:
ALTER ACCESS_METHOD remote
ADD am_scancost = FS_scancost,
ADD am_rowids,
DROP am_getbyid,
MODIFY am_costfactor = 0.9;
上述示例将对该存取方法进行以下修改:
GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 32
添加一个称为 FS_scancost( ) 的用户定义的函数或方法,它在 sysams
表中与 am_scancost 关键字向关联。
设置(添加) am_rowids 标记
删除与 am_getbyid 关键字相关联的用户定义的函数或方法
修改 am_costfactor 值