この文は、リモート・サーバ上の既存のオブジェクトを表す新しいプロキシ・テーブルを作成します。
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 句は、デリミタとしてセミコロン (;) をサポートします。セミコロンが location-string 文字列のどこかにある場合、そのセミコロンはフィールド・デリミタです。セミコロンがない場合は、ピリオドがフィールド・デリミタです。セミコロンを使用すると、データベースと所有者の各フィールドにファイル名と拡張子を使用できます。たとえば、次の文は、テーブル 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 は、そのカラム定義を検証します。カラム名、データ型、長さ、IDENTITY プロパティ、NULL プロパティについて、次の点がチェックされます。
カラム名が一致しなければなりません (大文字小文字は無視されます)。
CREATE EXISTING TABLE 文のデータ型は、リモート・ロケーションのカラムのデータ型と一致するか、またはそのデータ型に変換可能でなければなりません。たとえば、ローカル・カラムのデータ型が通貨として定義されているのに対して、リモート・カラムのデータ型が数値である場合があります。
各カラムの NULL プロパティがチェックされます。ローカル・カラムの NULL プロパティがリモート・カラムの NULL プロパティと同じではないと、警告メッセージが出力されますが、文はアボートしません。
各カラムの長さがチェックされます。char、varchar、binary、varbinary、decimal、numeric の各カラムの長さが一致しない場合は、警告メッセージが出力されますが、コマンドはアボートしません。
CREATE EXISTING 文には、実際のリモート・カラム・リストのサブセットだけをインクルードすることができます。
RESOURCE 権限が必要です。別のユーザのテーブルを作成するには、DBA 権限が必要です。
Windows CE ではサポートされません。
オートコミット
SQL/92 ベンダ拡張。
SQL/99 ベンダ拡張。
Sybase Open Client/Open Server でサポートされています。
リモート・サーバ 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'
SQL Anywhere Studio 9.0.2
Copyright © 1989–2005 Sybase, Inc. Portions copyright © 2001–2005 iAnywhere Solutions, Inc. All rights reserved.