[英]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.