Sql-Server
集合中不存在“ID”=“xxxxxxx”的“數據庫”
我有一個帶有 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 字元串。