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

SAP Sybase SQL Anywhere 16.0 (中文) » SQL Anywhere 服务器 - SQL 用法 » 远程数据访问 » 代理表

 

创建代理表 (SQL)

可使用 CREATE TABLE 或 CREATE EXISTING TABLE 语句在 Interactive SQL 中创建代理表。

前提条件

必须具有 CREATE PROXY TABLE 系统特权才能创建由自己所拥有的代理表。必须具有 CREATE ANY TABLE 或 CREATE ANY OBJECT 系统特权才能创建由他人所拥有的代理表。

上下文和注释

CREATE TABLE 语句在远程服务器上创建新表,如果使用 AT 子句,则可以为该表定义代理表。使用 SQL Anywhere 数据类型定义列。SQL Anywhere 会自动将数据转换为远程服务器的本机类型。

如果您使用 CREATE TABLE 语句创建本地和远程表,并随后使用 DROP TABLE 语句删除代理表,则远程表也将被删除。但是,您可以使用 DROP TABLE 语句删除使用 CREATE EXISTING TABLE 语句创建的代理表。在这种情况下,不会删除远程表。

CREATE EXISTING TABLE 语句创建映射到远程服务器上现有表的代理表。SQL Anywhere 从位于远程位置的对象派生列属性和索引信息。

 使用 CREATE EXISTING TABLE 语句创建代理表
  1. 连接到主机数据库。

  2. 执行 CREATE EXISTING TABLE 语句。

结果

将创建代理表。

要在当前服务器上创建名为 p_Employees 的代理表以映射到 RemoteSA 服务器上名为 Employees 的远程表,请使用下面的语法:

CREATE EXISTING TABLE p_Employees
AT 'RemoteSA..GROUPO.Employees';
名为 p_Employees 的代理表在本地服务器上,并映射到 RemoteSA 服务器上的 Employees 表。

以下语句将代理表 a1 映射到 Microsoft Access 文件 mydbfile.mdb。在本示例中,AT 子句使用分号 (;) 作为分隔符。为 Microsoft Access 定义的服务器名为 access。

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

下面的语句在远程服务器 RemoteSA 上创建名为 Employees 的表,并创建映射到该远程表的名为 Members 的代理表:

CREATE TABLE Members
( membership_id INTEGER NOT NULL,
member_name CHAR( 30 ) NOT NULL,
office_held CHAR( 20 ) NULL )
AT 'RemoteSA..GROUPO.Employees';

 另请参见