7
A
回答
4
你不能用一個SQL RESTORE DATABASE邏輯數據庫文件重命名:它沒有提供。只有物理文件可以使用WITH MOVE來更改
通常在SQL中使用ALTER DATABASE重命名邏輯文件。
這似乎是由RelocateFile SMO類確認。
8
//restore is the Restore object in SMO
restore.RelocateFiles.Add(new RelocateFile(SourceDataFile.Name, Path.Combine(destinationDirectory, destination.Database + ".mdf")));
restore.RelocateFiles.Add(new RelocateFile(SourceLogFile.Name, Path.Combine(destinationDirectory, destination.Database + "_log.ldf")));
restore.SqlRestore(destinationServer);
var destinationDatabase = destinationServer.Databases[destinationDatabaseName];
//renaming the logical files does the trick
destinationDatabase.FileGroups[0].Files[0].Rename(destinationDatabaseName);
destinationDatabase.LogFiles[0].Rename(destinationDatabaseName + "_log");
0
拉胡爾的代碼是正確的:還原到新的物理文件和重命名邏輯文件是一個兩步的過程:
的RelocateFile
呼叫說:「這個邏輯文件名映射到此物理文件」。您需要在這裏使用原始備份的邏輯文件名稱,而不是新的,否則您可能會得到「.mdf cannot be overwritten
」例外。
要創建新的邏輯名稱,請使用後面的Rename()
調用,如Rahul的代碼所示。
但是,如果你想改變使用SMO數據庫的名稱:
var srvConn = new ServerConnection(serverName)
{
LoginSecure = false,
Login = dbUserName,
Password = dbUserPassword,
DatabaseName = "master",
};
var mainDb = new Database(srvConn, "old database name");
mainDb.Rename("new database name");
mainDb.Refresh();
相關問題
- 1. 更多參數文件(.pf)中的數據庫邏輯名稱?
- 2. 更改數據庫名稱
- 3. 如何使用邏輯名稱附加數據庫文件?
- 4. 使用SMO更改
- 5. 用數據庫名稱動態更改webconfig名稱
- 6. 更改TFS 2013數據庫層名稱
- 7. 更改SQL數據庫的名稱
- 8. 更改EntityModel的數據庫名稱
- 9. ASP.NET MVC 5更改數據庫名稱
- 10. 附加數據庫後使用Powershell,如何設置邏輯名稱
- 11. 數據庫引擎更新邏輯
- 12. 使用SMO更改DataFile MaxSize
- 13. VB.NET更改數據庫列標題名稱使用的DataGridView
- 14. 如何使用java更改數據庫名稱和表?
- 15. MySQL更改觸發器以使用動態數據庫名稱
- 16. 使用邏輯複製將Postgres數據庫更改到Java應用程序
- 17. PHP的邏輯問題:上傳文件和更改名稱
- 18. 邏輯在數據庫
- 19. mysql數據庫邏輯
- 20. 數據庫邏輯建議
- 21. 無法與邏輯名稱
- 22. 更改邏輯 - jQuery
- 23. 使用smo重命名數據文件
- 24. 如何編輯Django應用程序名稱更改後的數據庫表
- 25. 用戶數據庫邏輯個成就
- 26. 更改Rails中的現有數據庫名稱和應用程序名稱
- 27. 如何在從SQL Server SMO腳本表中更改表名稱
- 28. 在邏輯運算符旁邊使用R函數名稱
- 29. 插入數據庫將別名更改爲有效的名稱?
- 30. 在庫中更改了函數名稱
你的意思是數據庫的名稱,或文件名?下面的所有答案似乎都假設你是指邏輯文件名? – Tao 2011-08-05 09:54:37