本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Babelfish 中的 T-SQL 差異
您可以在以下內容找到 Babelfish 目前版本支援的 T-SQL 功能的表格,其中包括一些有關行為與 SQL Server 不同的註釋。
如需各種版本的支援詳情,請參閱 Babelfish 各版本支援的功能。如需目前不支援的功能詳情,請參閱 Babelfish 不支援的功能。
Babelfish 可與 Aurora PostgreSQL 相容版本一起使用。如需 Babelfish 版本的更多資訊,請參閱 Aurora PostgreSQL 版本備註。
功能或語法 | 行為或差異的描述 |
---|---|
\ (行連續字元) | 目前不支援字元和十六進位字串的行延續字元 (換行之前的反斜線)。針對字元字串,反斜線換行會被解讀為字串中的字元。針對十六進位字串,反斜槓換行會導致語法錯誤。 |
@@version |
|
彙總函數 |
支援部分彙總函數 (支援 AVG、COUNT、COUNT_BIG、GROUPING、MAX、MIN、STRING_AGG 和 SUM)。如需不支援的彙總函數清單,請參閱 不支援的函數。 |
ALTER TABLE |
僅支援新增或捨棄單個資料欄或限制。 |
ALTER TABLE..ALTER COLUMN |
目前無法指定 NULL 和 NOT NULL。若要變更資料欄的可 null 性,請使用 PostgreSQL 陳述式 ALTER TABLE..{SET|DROP} NOT NULL。 |
沒有資料欄別名的空白資料欄名稱 |
|
CHECKSUM 函數 |
Babelfish 和 SQL 伺服器將不同的雜湊演算法使用於 CHECKSUM 函數。其結果是,由 Babelfish 中的 CHECKSUM 函數產生的雜湊值可能與 SQL Server 中的 CHECKSUM 函數產生的雜湊值不同。 |
資料欄預設 |
建立資料欄預設時會忽略限制條件名稱。若要捨棄資料欄預設,請使用下列語法: |
限制條件 |
PostgreSQL 不支援啟用和停用個別限制條件。陳述式會被忽略,並發出警告。 |
使用 DESC (遞減) 資料欄建立的條件限制 |
使用 ASC (遞增) 資料欄建立條件限制。 |
條件限制搭配 IGNORE_DUP_KEY |
建立的條件限制沒有此內容。 |
CREATE、ALTER、DROP SERVER ROLE |
ALTER SERVER ROLE 僅支援 Babelfish 中的 T-SQL 使用者,可體驗類似 SQL Server 的登入 (伺服器主體)、資料庫和資料庫使用者 (資料庫主體) 等概念。 |
CREATE、ALTER LOGIN 子句支援的語法有限 |
CREATE LOGIN... 支援 PASSWORD 子句、...DEFAULT_DATABASE 子句及 ...DEFAULT_LANGUAGE 子句。ALTER LOGIN... 支援 PASSWORD 子句,而不是 ALTER LOGIN... 不支援 OLD_PASSWORD 子句。只有以 sysadmin 成員身分登入才能修改密碼。 |
CREATE DATABASE 區分大小寫定序 |
CREATE DATABASE 庫陳述式不支援區分大小寫定序。 |
CREATE DATABASE 關鍵字和子句 |
不支援 COLLATE 和 CONTAINMENT=NONE 以外的選項。接受 COLLATE 子句,一律設定為 |
CREATE SCHEMA... 支援子句 |
您可以使用 CREATE SCHEMA 命令來建立空的結構描述。使用其他命令來建立結構描述物件。 |
資料庫 ID 值在 Babelfish 上不同 |
master 和 tempdb 資料庫不會是資料庫 ID 1 和 2。 |
FORMAT 日期類型功能的支持有以下限制 |
不支援單一字元子午線。 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 在 IDENTITY 資料欄中支援資料類型 |
索引搭配 IGNORE_DUP_KEY |
如果語法建立的索引包含 INNORE_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 物件 |
不支援登入物件的所有選項,除了密碼、預設資料庫、預設語言、啟用、停用。 |
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 中支援資料類型 numeric 和 and decimal 精確到 19 位數。 |
伺服器層級角色 |
支援 |
|
支援 |
SQL 關鍵字 SPARSE | 接受和忽略關鍵字 SPARSE。 |
SQL 關鍵字子句 |
目前忽略此子句。 |
索引和限制條件的 SQL 關鍵字 |
Babelfish 接受和忽略 |
|
|
重新啟動時不會重新初始化 tempdb |
資料庫重新啟動時,不會移除 tempdb 中建立的永久物件 (例如資料表和程序)。 |
TEXTIMAGE_ON filegroup |
Babelfish 會忽略 |
時間精確度 |
Babelfish 支援 6 位數精確度的小數秒。此行為尚無不良影響。 |
交易隔離層級 |
READUNCOMMITTED 和 READCOMMITTED 視為相同。 |
虛擬計算資料欄 (非持久性) |
虛擬計算資料欄建立為持久性。 |
沒有 SCHEMABINDING 子句 |
函數、程序、觸發程序或檢視表中不支援此子句。視為未指定 WITH SCHEMABINDING 來建立物件。 |