2009-11-06 224 views
1

我需要創建一個TSQL腳本來備份遠程SQL Server Express(2005)上的數據庫。我在另一個盒子上有一個SQL Server 2005。不確定如何從此SQL Server 2005運行腳本來執行備份作業。遠程SQL Server Express備份數據庫

劇本是這樣的:

RESTORE DATABASE [myDB] FROM DISK = N'C:\Tmp\myDB.bak' WITH FILE = 1, 
    NOUNLOAD, STATS = 10 

其實,我通過使用SQL Server Management Studio Express的嘗試在遠程SQL Server Express的這個SQL腳本,它運行正常。我問這個問題的原因是我可以在SQL Server 2005上安排一項工作,但我無法在遠程SQL Server Express上創建一個計劃任務。

另一種方法,我認爲是先在SQL Server Express上創建一個SQL SP。然後,我將編寫一個簡單的控制檯應用程序來連接到SQL,並將Windows作爲Windows Scheduled作業運行。

回答

2

TSQL沒有必要這樣做。 SQL Server(也是Express)包含一個名爲sqlmaint.exe的實用程序,它允許您在本地或遠程SQL服務器上執行備份操作。只需使用正確的命令行參數(documentation)編寫一個調用sqlmaint的批處理文件,並將該批處理文件放入Windows調度程序。

如果您仍然希望通過TSQL完成,SQL Server還包含osql.exe,它允許您在本地或遠程服務器上執行任意SQL語句。再次,您可以使用簡單的批處理文件自動化它。

編輯:如果您想使用自己的應用程序調用TSQL腳本,那麼瞭解您選擇的編程語言或數據訪問技術可能會有幫助。

+0

閱讀文檔。什麼是PlantName或PlantID?我怎樣才能定義一個?我的理解是,一個計劃定義了一個數據庫列表(在我的案例中是一個遠程SQL Server Express中的dbs列表)。 – 2009-11-06 22:14:48

+0

您不需要PlanName或PlanID。查看最後一個示例 – Heinzi 2009-11-06 22:16:03

+0

因此,對於你的情況,你可以使用類似「sqlmaint -S myServer -D myDB -BkUpDB C:\ Tmp」的類型。但是請注意,備份文件的名稱是自動生成的(請參閱BkUpDB on如果你需要一個固定的文件名,請考慮osql解決方案。 – Heinzi 2009-11-06 22:19:51

相關問題