我已經備份了我的數據庫。使用遠程SQL Server上的C#從備份文件創建數據庫
在我的程序中編輯它之後,它是一個新的newDb.bak
文件(在我的PC上)。
如何在遠程SQL Server上恢復此新數據庫,如果我有連接字符串(我知道ip,登錄名和密碼)?
主要是我只能使用C#(而不是SQL Server Management Studio)來做到這一點。
我已經備份了我的數據庫。使用遠程SQL Server上的C#從備份文件創建數據庫
在我的程序中編輯它之後,它是一個新的newDb.bak
文件(在我的PC上)。
如何在遠程SQL Server上恢復此新數據庫,如果我有連接字符串(我知道ip,登錄名和密碼)?
主要是我只能使用C#(而不是SQL Server Management Studio)來做到這一點。
不幸的是沒有任何直接的方法從本地備份文件遠程恢復數據庫。
但是,替代解決方案是在客戶端和服務器都有權訪問的某些地方(本地端或服務器端無關緊要)創建共享位置。 (更新:此外,確保將要執行恢復SQL服務器有權限的目錄,你複製備份 - @KSib) 然後從文件還原數據庫:
newDb.bak
到\\serverip\$sharedfolder\newDb.bak
。RESTORE DATABASE YOURDB FROM DISK = N'\\serverip\$sharedfolder\newDb.bak';
如果你想我可以分享C#
恢復數據庫的源代碼。
更新:另一種解決方案是創建一個包含varbinary
列的表,通過SqlCommand
或SqlBulkCopy
插入來自當地爲備份文件的內容,然後通過bcp
這樣這個導出文件內容到一些地方在你的服務器:
BCP "SELECT FileContent FROM createdTable WHERE ID = 1000" queryout "C:\newDB.bak" -T
然後你就可以輕鬆地執行恢復命令!
另外,您還可以創建一個服務器端StoredProcedure
,其中包含一個事務以獲取文件內容作爲輸入參數,並將所有命令作爲一個事務處理。
我希望能對你有所幫助:)。
>沒有任何直接的方式 Oooh廢話。 – KamikyIT
此外,請確保將要執行還原的SQL Server具有對要將備份複製到的目錄的權限。 – KSib
@KamikyIT我找到了一種新的方式並更新我的文章。讓我知道如果不清楚:) –