

# Babelfish 中不支持的功能
<a name="babelfish-compatibility.tsql.limitations-unsupported"></a>

在以下表和列表中，可以找到 Babelfish 当前不支持的功能。Aurora PostgreSQL 版本中包含对 Babelfish 的更新。有关更多信息，请参阅 [https://docs.amazonaws.cn/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html](https://docs.amazonaws.cn/AmazonRDS/latest/AuroraPostgreSQLReleaseNotes/Welcome.html)。

**Topics**
+ [当前不支持的功能](#babelfish-compatibility.tsql.limitations-unsupported-table)
+ [不支持的设置](#babelfish-compatibility.tsql.limitations-unsupported-list8)
+ [不支持的命令](#babelfish-compatibility.tsql.limitations-unsupported-list1)
+ [不支持的列名称或属性](#babelfish-compatibility.tsql.limitations-unsupported-list7)
+ [不支持的数据类型](#babelfish-compatibility.tsql.limitations-unsupported-list9)
+ [不支持的对象类型](#babelfish-compatibility.tsql.limitations-unsupported-list3)
+ [不支持的函数](#babelfish-compatibility.tsql.limitations-unsupported-list4)
+ [不支持的语法](#babelfish-compatibility.tsql.limitations-unsupported-list5)

## 当前不支持的功能
<a name="babelfish-compatibility.tsql.limitations-unsupported-table"></a>

在表格中，您可以找到有关当前不支持的某些功能的信息。


| 功能或语法 | 说明 | 
| --- | --- | 
| 程序集模块和 SQL 公共语言运行时 (CLR) 例程  | 不支持与组装模块和 CLR 例程相关的功能。 | 
| 列属性 | 不支持 ROWGUIDCOL、SPARSE、FILESTREAM 和 MASKED。 | 
| 包含的数据库 | 不支持在数据库级别而不是在服务器级别验证了登录名的包含数据库。 | 
| 跨数据库 DDL | 尚不支持执行跨多个数据库引用或操作对象的 DDL 语句。 | 
| 光标（可更新） | 不支持可更新的光标。 | 
| 光标（全局） | 不支持 GLOBAL 光标。 | 
| 光标（获取行为） | 不支持以下光标获取行为：FETCH PRIOR、FIRST、LAST、ABSOLUTE 和 RELATIVE | 
| 光标类型的输出参数 | 输出参数不支持光标类型的变量和参数（引发错误）。 | 
| 光标选项 | SCROLL、KEYSET、DYNAMIC、FAST\$1FORWARD、SCROLL\$1LOCKS、OPTIMISTIC、TYPE\$1WARNING 和 FOR UPDATE | 
| 数据加密 | 不支持数据加密。 | 
| 数据层应用程序（DAC） | 不支持使用 DAC 程序包（.dacpac）或 DAC 备份（.bacpac）文件进行数据层应用程序（DAC）导入或导出操作。 | 
| DBCC 命令  | 不支持 Microsoft SQL Server 数据库控制台命令 (DBCC)。在 Babelfish 3.4.0 及更高版本中支持 DBCC CHECKIDENT。 | 
| DROP IF EXISTS | USER 和 SCHEMA 对象不支持此语法。对象 TABLE、VIEW、PROCEDURE、FUNCTION 和 DATABASE 都支持此语法。 | 
| 加密 | 内置函数和语句不支持加密。 | 
| ENCRYPT\$1CLIENT\$1CERT 连接 | 不支持客户端证书连接。 | 
| EXECUTE AS 语句 | 不支持此语句。 | 
| EXECUTE AS SELF 子句 | 函数、过程或触发器不支持此子句。 | 
| EXECUTE AS USER 子句 | 函数、过程或触发器不支持此子句。 | 
| 引用数据库名称的外键约束 | 不支持引用数据库名称的外键约束。 | 
| FORMAT | 不支持用户定义的类型。 | 
| 具有大于 100 个参数的函数声明 | 包含 100 个以上参数的函数声明不受支持。 | 
| 包含 DEFAULT 作为参数值的函数调用 | DEFAULT 不是函数调用支持的参数值。Babelfish 3.4.0 及更高版本支持将 DEFAULT 作为函数调用的参数值。 | 
| 外部定义的函数 | 不支持 SQL CLR 函数等外部函数。 | 
| 全局临时表（名称以 \$1\$1 开头的表） | 不支持全局临时表。 | 
| 图表功能 | 不支持所有 SQL 图表功能。 | 
| 一般扩展存储过程 | 某些系统存储过程可为各种维护活动提供从 SQL Server 实例到外部程序的接口，但此处不支持此类系统存储过程。这包括 `xp_cmdshell` 和其他系统存储过程。有关更多信息，请参阅 [General Extended stored procedures](https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/general-extended-stored-procedures-transact-sql?view=sql-server-ver16)。 | 
| 具有多个前导 @ 字符的标识符（变量或参数） | 不支持以多个前导 `@` 开头的标识符。 | 
| 包含 @ 或 ]] 字符的标识符、表或列名 | 不支持包含 `@` 符号或方括号的表或列名。 | 
| 内联索引 | 不支持内联索引。 | 
| 调用名称在变量中的过程 | 不支持使用变量作为过程名称。 | 
| 具体化视图 | 不支持具体化视图。 | 
| NOT FOR REPLICATION 子句 | 接受并忽略此语法。 | 
| ODBC 转义函数 | 不支持 ODBC 转义函数。 | 
| 包含 DEFAULT 作为参数值的过程调用 | DEFAULT 不是支持的参数值。Babelfish 3.4.0 及更高版本支持将 DEFAULT 作为函数调用的参数值。 | 
| 包含 100 个以上参数的过程声明 | 不支持包含 100 个以上参数的声明。 | 
| 外部定义的过程 | 不支持 SQL CLR 过程等外部定义的过程。 | 
| 过程版本控制 | 不支持过程版本控制。 | 
| 过程 WITH RECOMPILE | 不支持 WITH RECOMPILE（与 DECLARE 和 EXECUTE 语句结合使用时）。 | 
| 远程对象引用 | 不支持针对 Babelfish 链接服务器执行存储过程。由四部分组成的对象名称仅用于读取，不适用于修改远程表。UPDATE 可以在 FROM 子句中引用远程表，而无需对其进行修改。有关更多信息，请参阅 [Babelfish 支持链接服务器](babelfish-postgres-linkedservers.md)。 | 
| 行级别安全性 | 不支持具有 CREATE SECURITY POLICY 和内联表值函数的行级安全性。 | 
| 服务代理功能 | 不支持服务代理功能。 | 
| SESSIONPROPERTY | 不支持的属性：ANSI\$1NULLS、ANSI\$1PADDING、ANSI\$1WARNINGS、ARITHABORT、CONCAT\$1NULL\$1YIELDS\$1NULL 和 NUMERIC\$1ROUNDABORT | 
| SET LANGUAGE | 此语句不支持 `english` 或 `us_english` 之外的任何值。 | 
| SP\$1CONFIGURE | 不支持此系统存储过程。 | 
| SQL 关键字 SPARSE | 接受并忽略关键字 SPARSE。 | 
| 表值构造函数语句（FROM 子句） | 不支持的语法适用于使用 FROM 子句构造的派生表。 | 
| 临时表 | 不支持临时表。 | 
| 临时过程不会自动删除 | 不支持此函数。 | 
| 外部定义的触发器 | 这些触发器不受支持，包括 SQL 公共语言运行时 (CLR)。 | 

## 不支持的设置
<a name="babelfish-compatibility.tsql.limitations-unsupported-list8"></a>

不支持以下设置：
+ SET ANSI\$1NULL\$1DFLT\$1OFF ON
+ SET ANSI\$1NULL\$1DFLT\$1ON OFF
+ SET ANSI\$1PADDING OFF
+ SET ANSI\$1WARNINGS OFF
+ SET ARITHABORT OFF
+ SET ARITHIGNORE ON
+ SET CURSOR\$1CLOSE\$1ON\$1COMMIT ON
+ SET NUMERIC\$1ROUNDABORT ON
+ SET PARSEONLY ON（命令未按预期工作）
+ SET FMTONLY ON（命令未按预期工作。它仅抑制 SELECT 语句的执行，而不抑制其他语句的执行。）

## 不支持的命令
<a name="babelfish-compatibility.tsql.limitations-unsupported-list1"></a>

不支持以下命令的某些功能：
+ ADD SIGNATURE
+ ALTER DATABASE、ALTER DATABASE SET
+ BACKUP/RESTORE DATABASE/LOG
+ BACPAC 和 DACPAC FILES RESTORE
+ CREATE、ALTER、DROP AUTHORIZATION。数据库对象支持 ALTER AUTHORIZATION。
+ CREATE、ALTER、DROP AVAILABILITY GROUP
+ CREATE、ALTER、DROP BROKER PRIORITY
+ CREATE、ALTER、DROP COLUMN ENCRYPTION KEY
+ CREATE、ALTER、DROP DATABASE ENCRYPTION KEY
+ CREATE、ALTER、DROP、BACKUP CERTIFICATE
+ CREATE AGGREGATE
+ CREATE CONTRACT
+ CHECKPOINT

## 不支持的列名称或属性
<a name="babelfish-compatibility.tsql.limitations-unsupported-list7"></a>

不支持以下列名称：
+ \$1IDENTITY
+ \$1ROWGUID
+ IDENTITYCOL

## 不支持的数据类型
<a name="babelfish-compatibility.tsql.limitations-unsupported-list9"></a>

不支持以下数据类型：
+ HIERARCHYID

## 不支持的对象类型
<a name="babelfish-compatibility.tsql.limitations-unsupported-list3"></a>

不支持以下对象类型：
+ COLUMN MASTER KEY
+ CREATE、ALTER EXTERNAL DATA SOURCE
+ CREATE、ALTER、DROP DATABASE AUDIT SPECIFICATION
+ CREATE、ALTER、DROP EXTERNAL LIBRARY
+ CREATE、ALTER、DROP SERVER AUDIT
+ CREATE、ALTER、DROP SERVER AUDIT SPECIFICATION
+ CREATE、ALTER、DROP、OPEN/CLOSE SYMMETRIC KEY
+ CREATE、DROP DEFAULT
+ CREDENTIAL
+ CRYPTOGRAPHIC PROVIDER
+ DIAGNOSTIC SESSION
+ 索引视图
+ SERVICE MASTER KEY
+ SYNONYM

## 不支持的函数
<a name="babelfish-compatibility.tsql.limitations-unsupported-list4"></a>

不支持以下内置函数：

**聚合函数**
+ APPROX\$1COUNT\$1DISTINCT
+ CHECKSUM\$1AGG
+ GROUPING\$1ID
+ 使用 WITHIN GROUP 子句的 STRING\$1AGG

**加密函数**
+ CERTENCODED 函数
+ CERTID 函数
+ CERTPROPERTY 函数

**元数据函数**
+ COLUMNPROPERTY
+ TYPEPROPERTY
+ SERVERPROPERTY 函数 — 不支持以下属性：
  + BuildClrVersion
  + ComparisonStyle
  + ComputerNamePhysicalNetBIOS
  + HadrManagerStatus
  + InstanceDefaultDataPath
  + InstanceDefaultLogPath
  + IsClustered
  + IsHadrEnabled
  + LCID
  + NumLicenses
  + ProcessID
  + ProductBuild
  + ProductBuildType
  + ProductUpdateReference
  + ResourceLastUpdateDateTime
  + ResourceVersion
  + ServerName
  + SqlCharSet
  + SqlCharSetName
  + SqlSortOrder
  + SqlSortOrderName
  + FilestreamShareName
  + FilestreamConfiguredLevel
  + FilestreamEffectiveLevel

**安全函数**
+ CERTPRIVATEKEY
+ LOGINPROPERTY

**语句、运算符、其他函数**
+ EVENTDATA 函数
+ GET\$1TRANSMISSION\$1STATUS
+ OPENXML

## 不支持的语法
<a name="babelfish-compatibility.tsql.limitations-unsupported-list5"></a>

不支持以下语法：
+ ALTER DATABASE
+ ALTER DATABASE SCOPED CONFIGURATION
+ ALTER DATABASE SCOPED CREDENTIAL
+ ALTER DATABASE SET HADR
+ ALTER INDEX
+ ALTER PARTITION FUNCTION
+ ALTER PARTITION SCHEME
+ ALTER SCHEMA
+ ALTER SERVER CONFIGURATION
+ ALTER SERVICE、BACKUP/RESTORE SERVICE MASTER KEY 子句
+ BEGIN CONVERSATION TIMER
+ BEGIN DISTRIBUTED TRANSACTION
+ BEGIN DIALOG CONVERSATION
+ BULK INSERT
+ CREATE COLUMNSTORE INDEX
+ CREATE EXTERNAL FILE FORMAT
+ CREATE EXTERNAL TABLE
+ CREATE、ALTER、DROP APPLICATION ROLE
+ CREATE、ALTER、DROP ASSEMBLY
+ CREATE、ALTER、DROP ASYMMETRIC KEY
+ CREATE, ALTER, DROP CREDENTIAL
+ CREATE, ALTER, DROP CRYPTOGRAPHIC PROVIDER
+ CREATE, ALTER, DROP ENDPOINT
+ CREATE、ALTER、DROP EVENT SESSION
+ CREATE, ALTER, DROP EXTERNAL LANGUAGE
+ CREATE、ALTER、DROP EXTERNAL RESOURCE POOL
+ CREATE、ALTER、DROP FULLTEXT CATALOG
+ CREATE、ALTER、DROP FULLTEXT INDEX
+ CREATE、ALTER、DROP FULLTEXT STOPLIST
+ CREATE, ALTER, DROP MESSAGE TYPE
+ CREATE、ALTER、DROP、OPEN/CLOSE、BACKUP/RESTORE MASTER KEY
+ CREATE、ALTER、DROP QUEUE
+ CREATE、ALTER、DROP RESOURCE GOVERNOR
+ CREATE, ALTER, DROP RESOURCE POOL
+ CREATE、ALTER、DROP ROUTE
+ CREATE, ALTER, DROP SEARCH PROPERTY LIST
+ CREATE, ALTER, DROP SECURITY POLICY
+ CREATE, ALTER, DROP SELECTIVE XML INDEX clause
+ CREATE、ALTER、DROP SERVICE
+ CREATE, ALTER, DROP SPATIAL INDEX
+ CREATE, ALTER, DROP TYPE
+ CREATE, ALTER, DROP XML INDEX
+ CREATE, ALTER, DROP XML SCHEMA COLLECTION
+ CREATE/DROP RULE
+ CREATE, DROP WORKLOAD CLASSIFIER
+ CREATE、ALTER、DROP WORKLOAD GROUP
+ ALTER TRIGGER
+ CREATE TABLE... GRANT 子句
+ CREATE TABLE... IDENTITY 子句
+ CREATE USER — 不支持此语法。PostgreSQL 语句 CREATE USER 不会创建与 SQL Server CREATE USER 语法相当的用户。有关更多信息，请参阅 [Babelfish 中的 T-SQL 差异](babelfish-compatibility.tsql.limitations.md)。
+ DENY
+ END, MOVE CONVERSATION
+ EXECUTE with AS LOGIN or AT option
+ GET CONVERSATION GROUP
+ GROUP BY ALL clause
+ GROUP BY CUBE clause
+ GROUP BY ROLLUP clause
+ INSERT... DEFAULT VALUES
+ MERGE
+ READTEXT
+ REVERT
+ SELECT TOP... WITH TIES
+ SELECT... FOR BROWSE
+ SELECT... FOR XML AUTO
+ SELECT... FOR XML EXPLICIT
+ SELECT... FOR XML PATH
+ SEND
+ SET DATEFORMAT
+ SET DEADLOCK\$1PRIORITY
+ SET FMTONLY
+ SET FORCEPLAN
+ SET NUMERIC\$1ROUNDABORT ON
+ SET OFFSETS
+ SET REMOTE\$1PROC\$1TRANSACTIONS
+ SET SHOWPLAN\$1TEXT
+ SET SHOWPLAN\$1XML
+ SET STATISTICS
+ SET STATISTICS PROFILE
+ SET STATISTICS TIME
+ SET STATISTICS XML
+ SHUTDOWN statement
+ UPDATE STATISTICS
+ UPDATETEXT
+ Using EXECUTE to call a SQL function
+ VIEW... CHECK OPTION clause
+ VIEW... VIEW\$1METADATA clause
+ WAITFOR DELAY
+ WAITFOR TIME
+ WAITFOR, RECEIVE
+ WITH XMLNAMESPACES construct
+ WRITETEXT
+ XPATH expressions