Collection Contents 上一页 下一页 PDF

ASA SQL 参考

SQL 语句

CREATE EXISTING TABLE 语句


说明 

此语句用于创建新的代理表。代理表表示远程服务器上的现有对象。

语法 

CREATE EXISTING TABLE [owner.]table-name
(column-definition, ...) ]
AT location-string

column-definition :
column-name data-type [NOT NULL]

location-string :
  remote-server-name.[db-name].[owner].object-name
remote-server-name;[db-name];[owner];object-name

参数 

AT 子句    AT 子句指定远程对象的位置。AT 子句支持将分号 (;) 用作分隔符。如果分号出现在表示位置的字符串中,则它用作字段分隔符。如果没有分号,则使用句号作为字段分隔符。这允许在数据库和所有者字段中使用文件名和扩展名。例如,下面的语句将表 a1 映射到 MS Access 文件 mydbfile.mdb

CREATE EXISTING TABLE a1
AT 'access;d:\mydbfile.mdb;;a1'
用法 

CREATE EXISTING TABLE 语句创建新的本地代理表,该代理表映射到外部位置的表。CREATE EXISTING TABLE 语句是 CREATE TABLE 语句的变化形式。EXISTING 关键字与 CREATE TABLE 一起使用时,指定一个表已存在于远程位置,并且其元数据将导入到 Adaptive Server Anywhere 中。以这种方式可将远程表建立为 Adaptive Server Anywhere 用户能够看得见的实体。Adaptive Server Anywhere 在创建表之前校验它是否存在于外部位置。

如果对象不存在(主机数据文件或远程服务器对象),此语句将被拒绝并伴随出现错误消息。

主机数据文件或远程服务器表的索引信息被抽取出来用于创建系统表 sysindexes 的行。这定义了服务器方面的索引和关键字,使查询优化程序可以考虑该表上可能存在的任何索引。

参照约束在适当的时候传递到远程位置。

如果未指定列定义,Adaptive Server Anywhere 会根据它从远程表中获得的元数据来派生列列表。如果指定了列定义,Adaptive Server Anywhere 会校验列定义。对列名称、数据类型、长度、标识属性和空值属性将作如下检查:

权限 

必须有 RESOURCE 权限。要为其他用户创建表,您必须具有 DBA 权限。

在 Windows CE 上不受支持。

副作用 

自动提交。

另请参见 
标准和兼容性 
示例 

在远程服务器 server_a 上,为 blurbs 表创建名为 blurbs 的代理表。

CREATE EXISTING TABLE blurbs
( author_id id not null,
copy text not null)
AT 'server_a.db1.joe.blurbs'

在远程服务器 server_a 上,为 blurbs 表创建名为 blurbs 的代理表。Adaptive Server Anywhere 会根据它从远程表中获得的元数据来派生列的列表。

CREATE EXISTING TABLE blurbs
AT 'server_a.db1.joe.blurbs'

在 Adaptive Server Anywhere 远程服务器 asademo 上,为 employee 表创建名为 rda_employee 的代理表。

CREATE EXISTING TABLE rda_employee
AT 'asademo..DBA.employee'

Collection Contents 上一页 下一页 PDF