我在寫一個C#應用程序,它通過FTP下載壓縮數據庫備份。應用程序然後需要提取備份並將其恢復到默認的數據庫位置。C#SQL將數據庫還原到默認數據位置
我不會知道哪個版本的SQL Server將被安裝在應用程序運行的機器上。因此,我需要根據實例名稱(位於配置文件中)找到默認位置。
我發現的所有示例都有一個他們讀取的註冊表項,但這不起作用,因爲這假定只安裝了一個SQL實例。
我發現另一個例子創建了一個數據庫,讀取該數據庫的文件屬性,一旦完成就刪除數據庫。這只是麻煩。
我發現在.NET框架的一些東西,應該工作,即:
Microsoft.SqlServer.Management.Smo.Server(ServerName).Settings.DefaultFile
的問題是,這是返回空字符串,這於事無補。
我還需要找出正在運行SQL服務的NT帳戶,以便我可以在備份文件解壓後將該用戶的讀取權限授予該用戶。
這是一個好主意,但我不希望使用默認名稱爲MDF和LDF文件。我希望那些包含日期戳。爲了做到這一點,我需要在創建臨時數據庫時指定文件名,這會使我回到需要默認路徑。 – RichieACC 2008-09-15 14:19:16
可能適用於您的一個訣竅是使用包含完整時間戳的名稱創建數據庫,然後將數據庫重命名爲任何應該使用的數據庫。重命名數據庫不會更改文件名。這樣就可以用正確的名稱創建文件。 – 2008-09-22 13:31:19
Darrel,爲了指定文件名,您需要指定完整路徑。 SQL似乎沒有任何相對路徑的概念。 – RichieACC 2008-12-03 10:50:46