Microsoft 會發佈 Microsoft SQL Server 2012 修正程式作為一個可下載的檔案。 由於修正程式是累積的,因此每個新版本都包含所有 Hotfix 和所有安全性修正程式,這些修正程式隨附於先前的 SQL Server 2012 修正程式版本。
症狀
假設您使用命令列在相同的 SQL Server 執行個體上為其他資料庫安裝 Microsoft SQL Server 2012 遠端 Blob 存放區。 例如,您可以在命令列執行下列命令:
msiexec /qn /lvx* rbs_install_log_2.txt /i rbs.msi REMOTEBLOBENABLE=1 FILESTREAMPROVIDERENABLE=1 DBNAME=“Database Name” FILESTREAMSTORENAME=FilestreamProvider_1 ADDLOCAL=EnableRBS,FilestreamRunScript DBINSTANCE=“Domain\ServerName”
在此案例中,此安裝會失敗。 此外,您收到類似下列的錯誤訊息:
注意
RBS 錯誤。 原始錯誤:編號 2601,嚴重性 14,狀態 1,程序 rbs_sp_add_blob_store,第 64 行,
訊息:無法在具有唯一索引為 'rbs_internal_blob_stores_ix_name' 的物件 'mssqlrbs_resources.rbs_internal_blob_stores' 中插入重複的索引鍵列。 重複的機碼值為 (FilestreamProvider_1) 。EXECUTE 後的交易計數表示 BEGIN 和 COMMIT 陳述式數目不相符。 先前計數 = 1,目前計數 = 0。
原因
發生這個問題是因為第二次安裝針對從第一次安裝衍生而來的變數使用不正確的值。
這些變數會儲存 FILESTREAM 資料庫名稱和執行個體名稱。 在第二次安裝期間,會從登錄中擷取這些變數的值,並覆寫您在命令列中定義的值。
解決方式
累積更新資訊
SQL Server 2012 SP1 的累積更新 2
此問題的修正程式最初在累積更新 2 中發行。 如需有關如何取得此 SQL Server 2012 SP1 累積更新套件的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
2790947 SQL Server 2012 Service Pack 1 累積更新套件 2 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含先前的 SQL Server 2012 SP1 修正程式版本中包含的所有 Hotfix 和所有安全性修正程式。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「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 注意:由於這些組建是累積的,因此每個新發行的修正程式都包含所有 Hotfix 和所有安全性修正程式,這些都包含在先前的 SQL Server 2012 修正程式版本中。 建議您考慮套用包含此 Hotfix 的最新修正版本。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2692828 SQL Server 2012 發行之後所發行的 SQL Server 2012 組建
因應措施
若要解決此問題,請使用 UI 模式而不是使用命令列來安裝遠端 Blob 存放區。
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。