在Visual Studio中,我可以使用「發佈到提供者」選項將整個數據庫及其所有數據,模式等...導出到.sql轉儲文件。有沒有辦法用C#或VB.NET生成該文件?以編程方式備份到sql文件
回答
您可以使用sqlcmd執行多種不同的備份操作。例如,讓你可以運行一個批處理文件或命令行下面的一個.bak文件...
sqlcmd -S host\DBName -E -Q "BACKUP DATABASE [Name_of_Database] TO DISK=’X:PathToBackupLocation[Name_of_Database].bak’"
*編輯
由於OP似乎在尋找DDL和DML來重建DB,而不是.BAK文件,上面的內容不是他需要的,但是我會將它留在這裏以防別人幫助其他人。
爲了達到OP的需要,你可能會想看看SMO庫。
也看到這些帖子SO ...
https://stackoverflow.com/a/1162348/1246574
Programmatically generate script for all objects in a database
您可以使用此代碼嘗試,
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "Cmd.exe";
psi.Arguments = "/C sqlcmd -S servername -E -Q " +
"\"BACKUP DATABASE [dbname] TO DISK = " +
"N'D:\\TEMP\\test.bak' WITH NOFORMAT, INIT, " +
"NAME = N'dbname-Complete Backup', " +
"SKIP, NOREWIND, NOUNLOAD, STATS = 10\"";
Process.Start(psi);
當然,你需要更換servername
與您的服務器的名稱,dbname
與您的數據庫的名稱和目標fil e名稱(d:\temp\test.bak
)與您的首選輸出名稱。
最後,您將擁有一個包含數據庫完整備份的文件。您只能在相同或更新版本的Sql Server上恢復此文件。
Thnx,但我需要一個.sql文件,而不是.bak – boruchsiper
@Steve,從他看來他不想要.BAK文件的意見,而是希望它全部轉儲到DDL/DML語句,就像如果你想在SSMS中使用「Script As」。 – Jim
@Jim我明白了,但是如果我看看這篇[舊文章](http://www.sqlteam.com/article/scripting-database-objects-using-smo-updated),這個任務將會非常複雜,我不會當然,如果真的值得付出的努力。 – Steve
SQL SMO可以作爲您的一個選項,我早就將它用於模式生成,看看this,儘管它最初只表示模式後來泛指包括數據的腳本,以及在那裏說的一個選項: -
If you want to include the data as well in the script then write
options.ScriptData = true;
- 1. 以編程方式備份Azure Sql db
- 2. 如何以編程方式備份SD卡中的sqlite文件?
- 3. 如何以編程方式備份SQL Server 2014 Express Localdb(.mdf)文件
- 4. 如何以編程方式備份Sql Server Express數據庫?
- 5. 以編程方式從遠程客戶端Sql Server恢復/備份數據庫
- 6. 如何在android上以編程方式備份應用程序
- 7. 以HTTP身份驗證以編程方式下載文件
- 8. 以編程方式更改SSIS上備份數據庫任務的備份文件路徑
- 9. 如何以編程方式進行Windows和數據備份?
- 10. WPF - 如何以編程方式備份/恢復LocalDB - ClickOnce
- 11. 以編程方式備份完整的iPhone地址簿
- 12. SSAS以編程方式僅備份元數據
- 13. Google App Engine以編程方式檢查備份的成功
- 14. 如何以編程方式爲WP7備份和恢復SMS?
- 15. 如何以編程方式備份通知欄?
- 16. 以編程方式編譯java文件
- 17. 以編程方式編寫PDF文件
- 18. 以編程方式編輯.webarchive文件
- 19. 以編程方式編輯.conf文件
- 20. SQL Server備份到C#文件
- 21. 以編程方式訪問Android設備上的文件從PC
- 22. Android設備上如何以編程方式「安裝」文件
- 23. 以編程方式在Android設備上保存文件
- 24. 如何以編程方式指定備用.config文件?
- 25. SQL Server備份文件
- 26. SQL文件未備份
- 27. Python GAE - 如何以編程方式將數據從備份導出到Big Query?
- 28. SQL備份文件,區分部分和完整備份文件
- 29. 以編程方式標識iphone設備
- 30. 以編程方式配置Android設備
它通常是一個壞主意來備份一切文本格式。架構 - 也許,但不是數據。 – Neolisk
您是否希望將數據庫備份爲常規.BAK文件,還是希望將其作爲重新創建數據庫的DDL和DML語句? – Jim
@Jim,我想通過db備份到.sql文件。 – boruchsiper