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 SERVER 语句

此语句用于创建远程服务器。

语法 1
CREATE SERVER server-name
CLASS server-class-string
USING connection-info-string
[ READ ONLY ]
server-class-string :
'SAODBC' 
| 'ASEODBC' 
| 'DB2ODBC' 
| 'MSSODBC'
| 'ORAODBC' 
| 'MSACCESSODBC' 
| 'MYSQLODBC' 
| 'ULODBC' 
| 'ADSODBC' 
| 'ODBC' 
| 'SAJDBC' 
| 'ASEJDBC'
connection-info-string :
  { host-name:port-number [/dbname ] | data-source-name | sqlanywhere-connection-string }
语法 2
CREATE SERVER server-name
CLASS 'DIRECTORY'
USING using-string
using-string :
'ROOT = path
[ ;SUBDIRS = n ]
[ ;READONLY = { YES | NO } ]'
参数
  • CLASS 子句   指定要用于远程连接的服务器类。服务器类包含详细的服务器功能信息。语法 2 中使用 DIRECTORY 类来访问本地计算机上的目录。

  • USING 子句   在语法 1 中,USING 子句为数据库服务器提供了一个连接字符串。适用的连接字符串取决于所使用的驱动程序,而驱动程序又取决于 server-class-string

    如果使用基于 ODBC 的服务器类,则 USING 子句为 data-source-namedata-source-name 是 ODBC 数据源名称。

    对于 SQL Anywhere 远程服务器(SAODBC 服务器类),connection-info-string 参数可以是任何有效的 SQL Anywhere 连接字符串。可以使用任何 SQL Anywhere 连接参数。例如,如果存在连接问题,则可以包含一个 LOG 连接参数以对连接尝试进行故障排除。

    有关 SQL Anywhere 连接字符串的详细信息,请参见连接参数

    在 Unix 平台上,您还需要引用 ODBC 驱动程序管理器。例如,使用所提供的 iAnywhere Solutions ODBC 驱动程序时,语法如下:

    USING 'driver=SQL Anywhere 11;dsn=my_dsn'

    如果使用基于 JDBC 的服务器类,则 USING 子句的形式为 host-name:port-number [/dbname],其中:

    • host-name   运行远程服务器的计算机。

    • port-number   远程服务器所监听的 TCP/IP 端口号。SQL Anywhere 的缺省端口号是 2638。

    • dbname   对于 SQL Anywhere 远程服务器,如果未指定 dbname,则使用缺省数据库。对于 Adaptive Server Enterprise,缺省值为 master 数据库,除使用 dbname 之外,另一个选择是通过其它某些方法(例如,在 FORWARD TO 语句中),使用另一个数据库。

      在语法 2 中,USING 子句为本地目录指定以下值:

  • ROOT 子句   即代表目录访问类根目录的路径(相对于数据库服务器)。当使用目录访问服务器名创建代理表时,代理表相对于此根路径。

  • SUBDIRS 子句   介于 0 与 10 之间的数字,用于表示根目录内可供数据库服务器访问的目录层级数。如果省略 SUBDIRS 或将其设置为 0,则通过目录访问服务器仅可以访问根目录中的文件。可通过目录访问服务器创建任何可用目录或子目录的代理表。

  • READONLY 子句   指定是否可修改由目录访问服务器访问的文件。缺省情况下,此值设置为 NO。

  • CREATEDIRS 子句   指定是否可使用目录访问服务器创建目录。缺省情况下,此值设置为 NO。

注释

当创建远程服务器时,会将它添加到 ISYSSERVER 系统表中。

语法 1   CREATE SERVER 语句用于定义远程服务器。

有关服务器的类及如何配置服务器的详细信息,请参见用于远程数据访问的服务器类

语法 2   CREATE SERVER 语句允许创建一个访问运行数据库服务器的计算机上的本地目录结构的目录访问服务器。必须为需要使用目录访问服务器的每个数据库用户创建一个外部登录。在 Unix 上,数据库服务器以特定用户身份运行,因此文件权限基于授予给数据库服务器用户的权限而定。

有关目录访问服务器的详细信息,请参见使用目录访问服务器

权限

要执行此命令,必须具有 DBA 权限。

Windows Mobile 上不支持。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   服务商扩充。

示例

下面的示例将创建一个名为 testsa 的 SQL Anywhere 远程服务器,它位于名为 apple 的计算机上,并监听端口号 2638:

CREATE SERVER testsa
CLASS 'SAJDBC'
USING 'apple:2638';

下例将为名为 ase_prod 的基于 JDBC 的 Adaptive Server 创建一个远程服务器。它的计算机名是 banana,端口号是 3025。

CREATE SERVER ase_prod
CLASS 'asejdbc'
USING 'banana:3025';

下例为名为 oracle723 的 Oracle 服务器创建一个远程服务器。它的 ODBC 数据源名称是 oracle723。

CREATE SERVER oracle723
CLASS 'oraodbc'
USING 'oracle723';

以下示例创建一个仅能访问 c:\temp 目录内文件的目录访问服务器:

CREATE SERVER diskserver0
CLASS 'directory'
USING 'root=c:\temp';
CREATE EXTERNLOGIN DBA TO diskserver0;
CREATE EXISTING TABLE diskdir0 AT 'diskserver0;;;.';

-- Get a list of those files.
SELECT permissions, file_name, size FROM diskdir0;

以下示例创建一个可访问九个目录层级的目录访问服务器:

-- Create a directory server that sees 9 levels of directories.
CREATE SERVER diskserver9
CLASS 'directory'
USING 'ROOT=c:\temp;SUBDIRS=9';
CREATE EXTERNLOGIN DBA TO diskserver9;
CREATE EXISTING TABLE diskdir9 AT 'diskserver9;;;.';