ALTER ACCESS_METHOD 语句

可以使用 ALTER ACCESS_METHOD 语句更改一个或多个 sysams 系统目录表中用户定义的主或从的存取方法的属性。

语法

元素 描述 限制 语法
access_method 要更改的存取方法的名称 存取方法必须由先前的 CREATE ACCESS_METHOD 语句在 sysams 系统目录表中注册 标识符
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;
上述示例将对该存取方法进行以下修改:
  • 添加一个称为 FS_scancost( ) 的用户定义的函数或方法,它在 sysams 表中与 am_scancost 关键字向关联。
  • 设置(添加) am_rowids 标记
  • 删除与 am_getbyid 关键字相关联的用户定义的函数或方法
  • 修改 am_costfactor
1 请参阅 用途选项