Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (A-D)

 

CREATE SCHEMA 语句

此语句用于创建数据库用户的表、视图和权限的集合。

语法
CREATE SCHEMA AUTHORIZATION userid
[
   create-table-statement
   | create-view-statement
   | grant-statement
  ] ... ;
注释

CREATE SCHEMA 语句用于创建模式。模式是表、视图及其关联权限的集合。

userid 必须是当前连接的用户 ID。不可以为其他用户创建模式。

如果 CREATE SCHEMA 语句中包含的任何语句失败,则回退整个 CREATE SCHEMA 语句。

CREATE SCHEMA 语句只是一种将各个 CREATE 语句和 GRANT 语句合成为一个操作的方法。数据库中没有创建任何 SCHEMA 数据库对象,要删除对象,必须使用各 DROP TABLE 或 DROP VIEW 语句。要撤消权限,必须对授予的每个权限使用 REVOKE 语句。

各个 CREATE 语句或 GRANT 语句不用语句分隔符分隔。语句分隔符用于标记 CREATE SCHEMA 语句其本身的结尾。

必须排序各 CREATE 或 GRANT 语句,以便在授予对象权限之前创建它们。

尽管目前可以为用户创建多个模式,但不建议这样做,将来的版本可能也不支持这样做。

权限

必须具有 RESOURCE 权限。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   核心特性。

  • Sybase   SQL Anywhere 不支持在 CREATE SCHEMA 语句中使用 REVOKE 语句,也不允许在 Transact-SQL 批处理或过程中使用它。

示例

下面的 CREATE SCHEMA 语句将创建一个由两个表组成的模式。该语句必须由具有 RESOURCE 权限的用户 ID sample_user 执行。如果创建表 t2 的语句失败,则两个表都不创建。

CREATE SCHEMA AUTHORIZATION sample_user
CREATE TABLE t1 ( id1 INT PRIMARY KEY )
CREATE TABLE t2 ( id2 INT PRIMARY KEY );

下列 CREATE SCHEMA 语句中的语句分隔符放置在第一个 CREATE TABLE 语句之后。由于语句分隔符标记 CREATE SCHEMA 语句的结束,因此数据库服务器将该示例解释为两个批处理语句。如果创建表 t2 的语句失败,仍会创建表 t1。

CREATE SCHEMA AUTHORIZATION sample_user
CREATE TABLE t1 ( id1 INT PRIMARY KEY );
CREATE TABLE t2 ( id2 INT PRIMARY KEY );