[英]SQL Server backup to file with C#
是否可以使用C#以編程方式(不使用SMO或更改權限)從SQL Server數據庫創建備份文件? SQL Server無權在用戶文件夾中創建(寫入) *.bak
文件,但是程序可以執行此操作。 因此,我想對數據庫創建一些查詢,該查詢將給出數據庫轉儲,並可以在文件中寫入。
像這樣:
SqlCommand sc = new SqlCommand(@"backup database test1 to stream", cnnct);
SqlDataReader r = sc.ExecuteReader();
while(r.read())file.WriteLine(reader.GetString(0));
這既不可能也不是一個好主意。 MSSQL數據庫過於復雜,無法可靠地作為SQL轉儲。 我不知道有什么工具能始終做到這一點。
解決此問題的正確方法是授予SQL Server用戶訪問該文件夾的權限。 找出正在使用的用戶(也許是procexp.exe?)並添加必要的權限。
的確是這樣,但比你想象的更復雜。 您需要實現一個VDI規范組件(按定義是本機代碼,而不是托管的)。 然后,您可以將此VDI加載到SQL Server中並備份到其中。 請參見SQL Server中有關VSS和VDI備份的摘要 。 看一下SQL Server壓縮備份 。
當然這不是您想要的,實施VDI的人員不需要提出這樣的問題。 那么,您真正想做什么呢? 似乎您想要的更多是對數據庫進行腳本編寫 ,為此提供了SMO Scripter 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.