Sql-Server

集合中不存在“ID”=“xxxxxxx”的“數據庫”

  • September 21, 2019

我有一個帶有 30 個數據庫的 SSAS 表格伺服器。

我還有一個每天備份所有數據庫的預定過程。

當我使用 AMO 執行帶有腳本任務的 SSIS 包的程序時,我收到此錯誤:

集合中不存在具有 ‘ID’ = ’nameofdatabase’ 的 ‘Database’。

備份過程在服務帳戶憑據下執行,它成功備份了 27 個數據庫,但只有 3 個失敗。

我檢查了這些數據庫,並沒有看到任何特別之處。

我搜尋了錯誤消息,大多數問題都與部署或處理數據庫有關。我看不出備份失敗的任何原因。

有什麼問題,我該如何解決這個問題?

正如Tom V提到的,我需要在我的 C# AMO 程式碼中使用 Name 而不是 ID。

目前我的程式碼是

Server server = new Server();
server.Connect(@"data source=" + asServer);
Database db = server.Databases[dbName];
db.Backup(
   new BackupInfo
   {
       AllowOverwrite = true,
       ApplyCompression = true,
       File = fileName
   }
   );

server.Databases[dbName]使用數據庫的ID搜尋集合。要使用名稱查找數據庫,我需要使用以下程式碼

Database db = server.Databases.FindByName(dbName);

可能導致這種情況的一件事是,如果您使用Name數據庫的而不是ID.

例如,我創建了一個名為 的數據庫Demo1,因此 ID 預設為相同的字元串。

之後我重命名了數據庫,但這並沒有改變 ID。

如果您的 AMO 腳本使用名稱字元串而不是可能導致此錯誤的 ID 字元串。

在此處輸入圖像描述

引用自:https://dba.stackexchange.com/questions/194407