1. RENAME DATABASE 语句

使用 RENAME DATABASE 语句来更改数据库的名称。此语句为对 SQL 的 ANSI/ISO 标准的扩展。

语法

SQL server中重命名索引 索引重命名sql语句_重命名

 

元素

描述

限制

语法

new_database 

您在此为 old_database 声明的新名称

必须在当前数据库服务器的数据库名称之中为唯一的;当发出此语句时,必须未被任何用户打开

数据库名 

old_database 

new_database 替代的名称

必须在当前数据库服务器上存在,但它不可为当前数据库的名称

数据库名 

owner 

old_database 的所有者

必须为该数据库的所有者

所有者名称 

用法

如果下列条件之一为真,则您可重命名数据库:

  1. 您创建了该数据库。
  2. 您有对该数据库的 DBA 权限。

然而,如果指定的数据库包含任何下列对象,则 RENAME DATABASE 语句失败,并报错 -9874:

  1. 虚拟表
  2. 虚拟索引
  3. R-tree 索引
  4. 在用户定义的主访问方法中或在用户定义的辅助访问方法中,引用数据库的当前名称的 DataBlade。

您仅可重命名您当前连接到的数据库服务器的数据库。

您不可从 SPL 例程之内重命名数据库。

  1. RENAME INDEX 语句

使用 RENAME INDEX 语句来更改现有的索引的名称。此语句为对 SQL 的 ANSI/ISO 标准的扩展。

语法

SQL server中重命名索引 索引重命名sql语句_数据库_02

 

元素

描述

限制

语法

new_index

您在此为该索引声明的新名称

名称对于该数据库必须为唯一的(或如果 old_index 在临时表上,则是对于该会话)

标识符 

old_index

new_index 替代的索引名称

必须存在,但不可为下列中的任何之一: -- 在系统目录表上的索引 -- 系统生成的约束索引 -- “虚拟索引接口”(VII)

标识符 

owner 

索引的所有者

必须为 old_index 的所有者

所有者名称 

用法

如果您是该索引的所有者或有对该数据库的 DBA 权限,则可重命名索引。

当您重命名索引时,数据库服务器更改 sysindexessysconstraintssysobjstate 和 sysfragments 系统目录表中的索引名称。(但对于临时表上的索引,不更新系统目录表。)

不可重命名系统目录表上的索引。如果您想更改实施约束的系统生成的索引的名称,请使用 ALTER TABLE ... DROP CONSTRAINT 语句来删除该约束,然后再使用 ALTER TABLE ... ADD CONSTRAINT 语句来定义新的约束,新约束与您删除了的约束有相同的定义,但对于您声明的新名称。

在缺省情况下,重新优化使用该重命名了的索引的 SPL 例程,当重命名该索引之后下一次执行它们时。然而,当启用自动的重编译时,如果该重命名了的索引与直接地引用了的表相关联,则在下一次使用该重命名了的索引时,自动地重编译 SPL 例程。然而,如果仅间接地引用该表,执行可失败,并报错 -710。要获取更多关于在更改被引用的表的模式之后,启用或禁用自动的重编译的信息,请参阅 IFX_AUTO_REPREPARE 环境选项。要获取更多关于 AUTO_REPREPARE 配置参数的信息,请参阅您的 GBase 8s 管理员参考手册