繁体   English   中英

SQL Server使用C#备份到文件

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM