症状
请考虑以下情形:
- 在 Microsoft SQL Server 2008、Microsoft SQL Server 2012 或 Microsoft SQL Server 2008 R2 中从可扩展密钥管理 (EKM) 提供程序创建对称密钥。
- 使用此对称密钥加密数据库中的某些数据。
- 将数据迁移到另一个数据库。
- 尝试从同一 EKM 提供程序在新数据库中创建对称密钥。 但是,无法解密新数据库中的加密数据,因为新创建的对称密钥具有 GUID 编号,并且此 GUID 编号不同于加密原始数据库中数据的原始对称密钥。
- 要使用与原始对称密钥相同的 GUID 重新创建对称密钥,请使用 IDENTITY_VALUE 选项指定与原始对称密钥一起使用的标识短语。
在这种情况下,你将收到类似于以下内容的错误消息:
注意
消息 102,级别 15,状态 1,第 3 行 “IDENTITY_VALUE”附近语法不正确
解决方法
累积更新信息
SQL Server 2012 累积更新 6
此问题的修补程序首次在累积更新 6 中发布。 有关如何获取 SQL Server 2012 的此累积更新程序包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2728897 SQL Server 2012 累积更新程序包 6 注意 由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2012 修补程序版本中包含的所有修补程序和所有安全修补程序。 建议应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 2012 SQL Server 发布之后发布的 SQL Server 2012 内部版本
SQL Server 2008 R2 Service Pack 1 的累积更新 11
此问题的修补程序已在累积更新 11 中首次发布。 有关如何获取 SQL Server 2008 R2 Service Pack 1 的此累积更新程序包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2812683 SQL Server 2008 R2 Service Pack 1 的累积更新程序包 11 注意 由于版本是累积的,因此每个新的修复版本都包含之前 SQL Server 2008 R2 Service Pack 1 修复版本中包含的所有修补程序和所有安全修补程序。 建议应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2567616 在 SQL Server 2008 R2 Service Pack 1 发布之后发布的 SQL Server 2008 R2 内部版本
SQL Server 2008 Service Pack 3 (SP3 的累积更新 9)
此问题的修补程序已在累积更新 9 中首次发布。 有关如何获取 SQL Server 2008 Service Pack 3 的此累积更新程序包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2799883 SQL Server 2008 Service Pack 3 累积更新包 9 注意 由于版本是累积的,因此每个新的修复版本都包含之前 SQL Server 2008 Service Pack 3 修复版本中包含的所有修补程序和所有安全修复。 建议应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2629969 在 SQL Server 2008 Service Pack 3 发布之后发布的 SQL Server 2008 内部版本
SQL Server 2008 R2 Service Pack 2 (SP2 的累积更新 4)
此问题的修补程序已在累积更新 4 中首次发布。 有关如何获取 SQL Server 2008 R2 Service Pack 2 的此累积更新程序包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2777358 SQL Server 2008 R2 Service Pack 2 累积更新包 4 注意 由于版本是累积的,因此每个新的修补程序版本都包含之前 SQL Server 2008 R2 Service Pack 2 修补程序版本中包含的所有修补程序和安全修补程序。 建议应用包含此修补程序的最新修补程序版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2730301 在 2008 R2 Service Pack 2 发布之后发布的 SQL Server 2008 R2 内部版本SQL Server
解决方法
要解决此问题,请在将数据迁移到第二个数据库之前对其进行解密。 将数据迁移到其他数据库后,使用新密钥加密数据。
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。