# 限制和考虑事项

使用 Microsoft SQL Server（基于日志） 源时，您应该注意以下限制和注意事项：

## 所有数据任务的限制和注意事项

* 如果删除任务，则不会删除任务中使用的数据库的 Microsoft SQL Server Replication Publisher 定义。Microsoft SQL Server 系统管理员必须从 Microsoft SQL Server 中删除这些定义。

* 在仅“满负载”landing 模式下支持稀疏表的Landing。

* 不支持索引视图中的数据的Landing。

* 不会捕获 TRUNCATE 事件。

* 仅在满负载 landing 任务中支持计算列的Landing。在 CDC 过程中，对计算列的 INSERT 将在目标上显示为 NULL，UPDATE 将被忽略。

* 不支持 Microsoft SQL Server 分区切换。

* 使用 WRITETEXT 和 UPDATETEXT 实用程序时，不会捕获应用于源数据库的事件。

* 不支持以下 DML 模式：

  `select <*> into <new_table> from <existing_table>`

* 不支持列级加密。

* 访问备份事务日志时，以下限制适用：

  * 不支持加密备份。
  * 不支持存储在 URL 或 Windows Azure 上的备份。

* 不支持 Microsoft SQL Server 备份到多个磁盘（即 MIRROR TO DISK）。

* 在 SQL Server 空间数据类型（GEOGRAPHY 和 GEOMETRY）中插入值时，可以忽略 SRID（空间参考系统标识符）属性-在这种情况下，将使用默认的 SRID（0 表示 GEOGRAPHY，4326 表示 GEOGLAPHY），也可以指定其他数字。当 landing 表具有空间数据类型时，用户插入的 SRID 将替换为默认 SRID。

* 不支持列存储索引。

* 不支持内存优化表（使用内存内 OLTP）。

* 不支持临时表

* 不支持延迟耐久性

* 不支持表更改跟踪

* 将在目标中创建掩蔽数据，而不进行掩蔽。

* 不支持 OpenLDAP

* 不支持直接从辅助 Microsoft SQL Server 数据库的Landing。因此，必须将 Microsoft SQL Server connector 配置为连接到主数据库或 AlwaysOn Listener。

* 不支持自配置为使用 ADR（加速数据库恢复）的数据库的Landing。

* Landing不支持名称中带有撇号 (') 的表或架构。

* 不会捕获使用 DACPAC 应用于数据库的更改。

* 具有压缩和未压缩分区的表不支持 CDC。

* 不支持系统表和视图。

## 复制和登陆任务的限制和注意事项

* 不支持使用 `sp_rename` 重命名表（例如 `sp_rename 'Sales.SalesRegion', 'SalesReg;`）

* 不支持使用 `sp_rename` 重命名列（例如 `sp_rename 'Sales.Sales.Region', 'RegID', 'COLUMN';`）

* *在文件级别*访问备份事务日志时，以下限制适用：

  * 备份事务日志必须位于具有适当权限和访问权限的共享文件夹中。
  * 活动事务日志通过 Microsoft SQL Server API（而不是文件级）进行访问。
  * Qlik Talend Data Integration 和 Microsoft SQL Server 计算机必须位于同一域中。
  * 不支持透明数据加密 (TDE)。请注意，当使用 SQL Server 的本机功能（即不使用文件级访问）访问备份事务日志时，支持 TDE 加密。
  * 不支持 Unix 平台。
  * 不支持从多个条带读取备份日志。

* 仅在有限 LOB 模式下支持复制 GEOGRAPHY 和 GEOMETRY 数据类型。

* 如果没有为 MS-REPLICATION 或 MS-CDC 设置数据库，您仍然可以捕获没有主键的表，但请记住，在这种设置中，只会捕获 INSERT/DELETE DML 事件。UPDATE 事件将被忽略。

* 不支持在单个事务中捕获 DDL 和 DML 语句。

* 更新影响多行的主键/唯一索引可能会在将更改应用于目标时引起冲突。例如，如果 UPDATE 作为 INSERT/DELETE 操作而不是单个 UPDATE 操作应用于目标，则可能会发生这种情况。在这种情况下（对主键/唯一索引的更新会影响多行），不支持在“批量优化应用更改处理”模式下工作，因为这可能会导致表被忽略。但是，在事务应用更改处理模式下工作可能会导致违反约束。

  如果发生这种情况，您需要重新加载相关表，或者在 [应用例外](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/apply_exceptions.htm#ar_control_tables_553656663_1108409)控制表中找到有问题的记录，然后在目标数据库中手动编辑它们。另请参见：[Change processing tuning](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/DataIntegration/Replicating/replicating-settings-cptuning.htm)。

## 不支持的 Microsoft SQL Server 安全功能

不支持使用以下Microsoft SQL Server 安全功能的表：

* 始终加密
* 行级安全

## 不受支持的数据类型

不支持以下数据类型：

* CURSOR
* SQL\_VARIANT
* TABLE

信息注释

根据基本类型支持用户定义的数据类型。例如，基于 DATETIME 的用户定义数据类型被处理为 DATETIM 数据类型。