Stretch Database 的限制

适用于: SQL Server 2016 (13.x) 及更高版本 - 仅限 Windows

重要

SQL Server 2022 (16.x) 和 Azure SQL 数据库中已弃用 Stretch Database。 在数据库引擎的未来版本中将删除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

了解有关启用 Stretch 的表的限制,以及当前为表启用 Stretch 的限制。

启用 Stretch 的表的限制

启用 Stretch 的表具有下列限制。

约束

  • 在包含迁移数据的 Azure 表中,UNIQUE 约束和 PRIMARY KEY 约束并未强制唯一性。

DML 操作

  • 在启用 Stretch 的表中或包含启用 Stretch 的表的视图中,无法更新或删除已迁移的或符合迁移条件的行。

  • 无法在链接服务器上将行插入启用 Stretch 的表。

索引

  • 无法为包含启用 Stretch 的表的视图创建索引。

  • 对 SQL Server 索引创建的筛选器不会传播到远程表。

当前为表启用 Stretch 的限制

以下为当前阻止对表启用 Stretch 的项。

表属性

  • 其中超过 1,023 列或超过 998 个索引的表

  • FileTable 或包含 FILESTREAM 数据的表

  • 表被复制或正在使用“更改跟踪”或“更改数据捕获”

  • 内存优化表

数据类型

  • ntext、text 和 image
  • timestamp
  • sql_variant
  • xml
  • CLR 数据类型包括 geometry、geography、hierarchyid 和 CLR 用户定义类型

列类型

  • COLUMN_SET

  • 计算列

约束

  • 默认约束和 CHECK 约束

  • 引用表的外键约束 在父子关系(如 Order 和 Order_Detail)中,可以为子表 (Order_Detail) 启用 Stretch,但不能为父表 (Order) 启用 Stretch。

索引

  • 全文检索

  • XML 索引

  • 空间索引

  • 引用表的索引视图

请参阅