KB2780146 - 修复:尝试解密从 SQL Server 2008 R2、SQL Server 2012 或 SQL Server 2008 中的另一个数据库迁移的数据时,出现“'IDENTITY_VALUE'附近的语法不正确”错误

应用对象
SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2012 Developer SQL Server 2012 Enterprise Core SQL Server 2012 Enterprise

症状

请考虑以下情形:

  • 在 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 产品中存在问题。