Microsoft 将 Microsoft SQL Server 2012 修复分发为一个可下载文件。 由于修补程序是累积的,因此每个新版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。
症状
假设你使用命令行为 SQL Server 的同一实例上的其他数据库安装 Microsoft SQL Server 2012 远程 Blob 存储。 例如,你可以在命令行中运行以下命令:msiexec/qn/lvx * rbs_install_log_2 .txt/i XXX REMOTEBLOBENABLE = 1 FILESTREAMPROVIDERENABLE = 1 DBNAME = "数据库名称" FILESTREAMSTORENAME = FilestreamProvider_1 ADDLOCAL = ENABLERBS,FilestreamRunScript DBINSTANCE = "Domain\ServerName"在这种情况下,此安装失败。 此外,你会收到类似以下内容的错误消息:
RBS 错误。 原始错误:数字2601,严重级别14,状态1,过程 rbs_sp_add_blob_store,第64行,消息:不能在对象 "mssqlrbs_resources _internal_blob_stores" 中插入具有唯一索引 "rbs_internal_blob_stores_ix_name" 的重复键行。 "重复键" 值为(FilestreamProvider_1)。执行后的事务计数指示 BEGIN 和 COMMIT 语句的数量不匹配。 以前的计数 = 1,当前计数 = 0。
原因
出现此问题的原因是,第二个安装对从第一个安装派生的变量使用了不正确的值。这些变量存储 FILESTREAM 数据库名称和实例名称。 在第二次安装期间,将从注册表中检索这些变量的值,并覆盖在命令行中定义的值。
解决方案
累积更新信息
SQL Server 2012 SP1 的累积更新2
此问题的修补程序首次在累积更新2中发布。有关如何获取此累积更新包的 SQL Server 2012 SP1 的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2790947 SQL Server 2012 的累积更新包 2 Service Pack 1注意 由于这些版本是累积的,因此每个新的修复版本都包含了以前的 SQL Server 2012 SP1 修补程序版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2772858 在发布 SQL Server 2012 Service Pack 1 之后发布的 SQL Server 2012 版本
SQL Server 2012 累积更新5
此问题的修补程序首次在累积更新5中发布。有关如何为 SQL Server 2012 获取此累积更新包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2777772 SQL Server 2012 累积更新程序包5注意 由于这些版本是累积的,因此每个新的修复版本都包含以前的 SQL Server 2012 修复版本附带的所有修补程序和所有安全修补程序。 我们建议你考虑应用包含此修补程序的最新修复版本。 有关更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2692828 在 SQL Server 2012 发布后发布的 SQL Server 2012 版本
解决方法
若要解决此问题,请使用 UI 模式而不是命令行来安装远程 Blob 存储。
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。