

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用微软 SQL Server 数据库作为目标 AWS Database Migration Service
<a name="CHAP_Target.SQLServer"></a>

你可以使用将数据迁移到微软 SQL Server 数据库 AWS DMS。将 SQL Server 数据库作为目标时，您可以从另一个 SQL Server 数据库或其他支持的数据库之一迁移数据。

有关 AWS DMS 支持作为目标的 SQL Server 版本的信息，请参见[的目标 AWS DMS](CHAP_Introduction.Targets.md)。

AWS DMS 支持企业版、标准版、工作组版和开发版的本地版和 Amazon RDS 版。

有关使用 AWS DMS SQL Server 目标数据库的更多详细信息，请参阅以下内容。

**Topics**
+ [使用 SQL Server 作为目标的限制 AWS Database Migration Service](#CHAP_Target.SQLServer.Limitations)
+ [使用 SQL Server 作为目标时的安全要求 AWS Database Migration Service](#CHAP_Target.SQLServer.Security)
+ [使用 SQL Server 作为目标时的端点设置 AWS DMS](#CHAP_Target.SQLServer.ConnectionAttrib)
+ [Microsoft SQL Server 的目标数据类型](#CHAP_Target.SQLServer.DataTypes)

## 使用 SQL Server 作为目标的限制 AWS Database Migration Service
<a name="CHAP_Target.SQLServer.Limitations"></a>

将 SQL Server 数据库作为 AWS DMS目标时，存在以下限制：
+ 在您手动创建带有计算列的 SQL Server 目标表时，如果使用 BCP 批量复制实用程序，则不支持完全加载复制。要使用完全加载复制，请通过在端点上设置额外连接属性（ECA）`'useBCPFullLoad=false'` 来禁用 BCP 加载。有关 ECAs 在终端节点上进行设置的信息，请参阅[创建源和目标终端节点](CHAP_Endpoints.Creating.md)。有关使用 BCP 的更多信息，请参阅 [Microsoft SQL Server 文档](https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-and-export-bulk-data-by-using-the-bcp-utility-sql-server)。
+ 复制具有 SQL Server 空间数据类型（几何和地理）的表时， AWS DMS 使用默认 SRID 替换您可能已插入的任何空间参考标识符 (SRID)。对于 GEOMETRY，默认 SRID 为 0，对于 GEOGRAPHY，则为 4326。
+ 不支持临时表。在事务性应用模式下，如果在目标中手动创建这些表，则迁移临时表可能适用于仅复制任务。
+ 当前，PostgreSQL 源中的`boolean`数据类型作为值不一致的数据类型迁移到 SQLServer 目标`bit`中。

  作为解决方法，请执行下列操作：
  + 使用列`VARCHAR(1)`的数据类型预先创建表（或者让我们 AWS DMS 创建表）。然后，让下游处理将“F”视为 False，将“T”视为 True。
  + 为避免出现必须更改下游处理的情况，请在任务中添加转换规则，将“F”值更改为“0”，将“T”值更改为 1，并将它们存储为 SQL Server 位数据类型。
+ AWS DMS 不支持通过更改处理来设置列可为空性（使用带`ALTER TABLE`语`ALTER COLUMN [SET|DROP] NOT NULL`句的子句）。
+ 不支持 Windows 身份验证。

## 使用 SQL Server 作为目标时的安全要求 AWS Database Migration Service
<a name="CHAP_Target.SQLServer.Security"></a>

以下内容描述了与微软 SQL Server 目标 AWS DMS 一起使用的安全要求：
+  AWS DMS 用户帐户必须至少具有您要连接的 SQL Server 数据库上的`db_owner`用户角色。
+ SQL Server 系统管理员必须向所有 AWS DMS 用户账户提供此权限。

## 使用 SQL Server 作为目标时的端点设置 AWS DMS
<a name="CHAP_Target.SQLServer.ConnectionAttrib"></a>

您可以使用端点设置来配置 SQL Server 目标数据库，这与使用额外连接属性类似。您可以在使用 AWS DMS 控制台创建目标端点时指定设置，或者使用中的`create-endpoint`命令和 `--microsoft-sql-server-settings '{"EndpointSetting": "value", ...}'` JSON 语法。[AWS CLI](https://docs.aws.amazon.com/cli/latest/reference/dms/index.html)

下表显示了将 SQL Server 作为目标时您可以使用的端点设置。

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Target.SQLServer.html)

## Microsoft SQL Server 的目标数据类型
<a name="CHAP_Target.SQLServer.DataTypes"></a>

下表显示了使用时支持的 Microsoft SQL Server 目标数据类型 AWS DMS 以及 AWS DMS 数据类型的默认映射。有关 AWS DMS 数据类型的更多信息，请参见[AWS Database Migration Service 的数据类型](CHAP_Reference.DataTypes.md)。


|  AWS DMS 数据类型  |  SQL Server 数据类型  | 
| --- | --- | 
|  BOOLEAN  |  TINYINT  | 
|  BYTES  |  VARBINARY(length)  | 
|  DATE  |  对于 SQL Server 2008 及更高版本，请使用 DATE。 对于早期版本，如果小数位数等于或小于 3，请使用 DATETIME。在所有其他情况下，请使用 VARCHAR (37)。  | 
|  TIME  |  对于 SQL Server 2008 及更高版本，请使用 DATETIME2 (%d)。 对于早期版本，如果小数位数等于或小于 3，请使用 DATETIME。在所有其他情况下，请使用 VARCHAR (37)。  | 
|  DATETIME  |  对于 SQL Server 2008 及更高版本，请使用 DATETIME2 （缩放）。 对于早期版本，如果小数位数等于或小于 3，请使用 DATETIME。在所有其他情况下，请使用 VARCHAR (37)。  | 
|  INT1  | SMALLINT | 
|  INT2  |  SMALLINT  | 
|  INT4  | INT | 
|  INT8  |  BIGINT  | 
|  NUMERIC  |  NUMERIC (p,s)  | 
|  REAL4  |  REAL  | 
|  REAL8  | FLOAT | 
|  STRING  |  如果列是日期或时间列，请执行以下操作： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/dms/latest/userguide/CHAP_Target.SQLServer.html) 如果列不是日期或时间列，请使用 VARCHAR (length)。  | 
|  UINT1  |  TINYINT  | 
|  UINT2  |  SMALLINT  | 
|  UINT4  |  INT  | 
|  UINT8  |  BIGINT  | 
|  WSTRING  |  NVARCHAR (length)  | 
|  BLOB  |  VARBINARY(max) IMAGE 要将此数据类型与一起使用 AWS DMS，必须 BLOBs 为特定任务启用使用。 AWS DMS 仅在包含主键的表中支持 BLOB 数据类型。  | 
|  CLOB  |  VARCHAR(max) 要将此数据类型与一起使用 AWS DMS，必须 CLOBs 为特定任务启用使用。在更改数据捕获 (CDC) 期间， AWS DMS 仅在包含主键的表中支持 CLOB 数据类型。  | 
|  NCLOB  |  NVARCHAR(max) 要将此数据类型与一起使用 AWS DMS，必须 NCLOBs 为特定任务启用使用。在 CDC 期间，仅在包含主键的表中 AWS DMS 支持 NCLOB 数据类型。  | 