Babelfish での T-SQL の違い
以下に、Babelfish の現在のリリースでサポートされている T-SQL 機能の表と SQL Server 用との動作の違いに関する注意事項を示します。
さまざまなバージョンのサポートの詳細については、「バージョンごとに Babelfish でサポートされている機能」を参照してください。現在サポートされていない機能の詳細については、「Babelfish でサポートされていない機能」を参照してください。
Babelfish は、Aurora PostgreSQL 互換エディションで使用可能です。Babelfish のリリースの詳細については、「Aurora PostgreSQL リリースノート」を参照してください。
機能または構文 | 動作または違いの説明 |
---|---|
\ (行継続文字) | 文字および 16 進数の文字列の行継続文字 (改行の前のバックスラッシュ) は現在サポートされていません。文字列の場合、バックスラッシュ改行は文字列内の文字として解釈されます。16 進数の文字列の場合、バックスラッシュ改行は構文エラーになります。 |
@@バージョン |
|
集計関数 |
集計関数は部分的にサポートされています (AVG、COUNT、COUNT_BIG、GROUPING、MAX、MIN、STRING_AGG、SUM がサポートされています)。サポートされていない集計関数のリストについては、サポートされていない関数 を参照してください。 |
ALTER TABLE |
単一の列または制約の追加または削除のみをサポートします。 |
ALTER TABLE..ALTER COLUMN |
NULL と NOT NULL は現在指定できません。カラムのヌル可能性を変更するには、PostgreSQL ステートメント ALTER TABLE..{SET|DROP} NOT NULL を使用してください。 |
列エイリアスのない空白の列名 |
|
CHECKSUM 関数 |
Babelfish と SQL Server は CHECKSUM 関数で異なるハッシュアルゴリズムを使用しています。その結果、Babelfish の CHECKSUM 関数によって生成されるハッシュ値は、SQL Server の CHECKSUM 関数によって生成されるハッシュ値と異なる場合があります。 |
列のデフォルト |
列のデフォルトを作成する場合、制約名は無視されます。列のデフォルトを削除するには、次の構文を使用します: |
Constraint_name |
SQL Server では、テーブルが属するスキーマ内で制約名を一意にする必要があります。ただし、Babelfish では、これは PRIMARY KEY と UNIQUE の制約にのみ適用されます。その他のタイプの制約は、この制限の対象ではありません。 |
制約 |
PostgreSQL は、個々の制約のオンとオフをサポートしていません。ステートメントは無視され、警告が表示されます。 |
IGNORE_DUP_KEY による制約 |
制約は、このプロパティなしで作成されます。 |
サーバーロールの作成、変更、削除 |
ALTER SERVER ROLE は、 Babelfish の T-SQL ユーザーは、ログイン (サーバープリンシパル)、データベース、およびデータベースユーザー (データベースプリンシパル) の概念について、SQL Server と類似の経験をします。 |
CREATE、ALTER LOGIN 句は、限定された構文でサポートされています |
ログイン作成..。パスワード句、...DEFAULT_DATABASE 句、および ...DEFAULT_LANGUAGE 句がサポートされています。ログイン変更..。PASSWORD 句はサポートされていますが、ALTER LOGIN..。OLD_PASSWORD 句はサポートされていません。パスワードを変更できるのは、sysadmin メンバーのログインのみです。 |
大文字と小文字を区別する照合順序を作成 |
CREATE DATABASE ステートメントでは、大文字と小文字を区別する照合はサポートされていません。 |
CREATE DATABASE キーワードと句 |
COLLATE および CONTAINMENT=NONE 以外のオプションはサポートされていません。COLLATE 句は受け入れられ、常に |
CREATE SCHEMA... サポート句 |
CREATE SCHEMA コマンドを使用して、空のスキーマを作成できます。追加のコマンドを使用して、スキーマオブジェクトを作成します。 |
データベース ID の値は Babelfish で異なります |
マスターデータベースと tempdb データベースは、データベース ID 1 および 2 にはなりません。 |
FORMAT 日付型関数は、次の制限付きでサポートされています |
1 文字の午前/午後はサポートされていません。 SQL サーバーでは、「yyy」形式は、1000 年を超える年では 4 桁を返しますが、それ以外の場合は 3 桁しか返しません。 「g」および「R」形式はサポートされていません 「Vi-VN」ロケールの翻訳は少し異なります。 |
63 文字を超える識別子 |
PostgreSQL は、最大 63 文字の識別子をサポートしています。Babelfish は 63 文字を超える識別子を、元の名前のハッシュを含んだ名前に変換します。例えば、「AB(ABC1234567890123456789012345678901234567890123456789012345678901234567890」として作成された表は、「ABC123456789012345678901234567890123456789012345678901234567890」に変換される可能性があります。 |
IDENTITY 列のサポート |
IDENTITY 列は tinyint 、smallint 、int 、bigint 、numeric 、 およびdecimal のデータ型でサポートされています。SQL Server は、IDENTITY 列で PostgreSQL Server は、IDENTITY 列で |
IGNORE_DUP_KEY のインデックス |
IGNORE_DUP_KEY を含むインデックスを作成する構文は、このプロパティを省略したかのようにインデックスを作成します。 |
32 列を超えるインデックス |
インデックスには 32 個を超える列を含めることはできません。含まれるインデックス列は PostgreSQL では最大までカウントされますが、SQL Server ではカウントされません。 |
インデックス (クラスター) |
クラスター化したインデックスは、NONCLUSTERED が指定されているかのように作成されます。 |
インデックス句 |
次の句は無視されます: FILLFACTOR、ALLOW_PAGE_LOCKS、ALLOW_ROW_LOCKS、PAD_INDEX、STATISTICS_NORECOMPUTE、OPTIMIZE_FOR_SEQUENTIAL_KEY、SORT_IN_TEMPDB、DROP_EXISTING、ONLINE、COMPRESSION_DELAY、MAXDOP、および DATA_COMPRESSION |
JSON サポート |
名前と値のペアの順序は保証されていません。ただし、配列タイプは影響を受けません。 |
LOGIN オブジェクト |
PASSWORD、DEFAULT_DATABASE、DEFAULT_LANGUAGE、ENABLE、DISABLE を除く LOGIN オブジェクトのすべてのオプションがサポートされていません。 |
NEWSEQUENTIALID 関数 |
NEWID として実装されたシーケンシャル動作は保証されません。 |
OUTPUT 句は、以下の制限付きでサポートされています。 |
同じ DML クエリでは、OUTPUT と OUTPUT INTO はサポートされていません。OUTPUT 句内の UPDATE または DELETE オペレーションのターゲット以外のテーブルへの参照はサポートされていません。OUTPUT… DELETED *、INSERTED * は同じクエリではサポートされていません。 |
プロシージャまたは関数パラメータの制限 |
Babelfish は、プロシージャまたは関数に対して最大 100 個のパラメータをサポートしています。 |
ROWGUIDCOL |
現在のところ、この句は無視されます。参照するクエリ |
SEQUENCE オブジェクトサポート |
SEQUENCE オブジェクトは、tinyint、smallint、int、bigint、numeric、および decimal のデータ型でサポートされています。 Aurora PostgreSQL は、SEQUENCE 内の数値および小数点のデータ型の精度を 19 桁までサポートしています。 |
サーバーレベルのロール |
|
|
|
SQL キーワード SPARSE | キーワード SPARSE は受け入れられ、無視されます。 |
SQL キーワード句 |
現在のところ、この句は無視されます。 |
インデックスと制約の SQL キーワード |
Babelfish は |
|
|
tempdb は再起動時に再初期化されません |
tempdb で作成された永続オブジェクト (テーブルやプロシージャなど) は、データベースを再起動しても削除されません。 |
TEXTIMAGE_ON ファイルグループ |
Babelfish は |
時間精度 |
Babelfish は 少数秒 で 6 桁の精度をサポートします。この動作では、悪影響は予想されません。 |
トランザクション分離レベル |
READUNCOMMITTED は READCOMMITTED と同じように扱われます |
仮想計算列 (非永続的) |
仮想計算列は永続として作成されます。 |
WITHOUT SCHEMABINDING 句 |
この句は、関数、プロシージャ、トリガー、またはビューでサポートされていません。オブジェクトは作成されますが、WITH SCHEMABINDING が指定されているかのようになります。 |