0

是否可以使用 C# 以编程方式从 SQL Server 数据库创建备份文件(不使用 SMO 或更改权限)?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));
4

2 回答 2

3

这既不可能,也不是一个好主意。MSSQL 数据库过于复杂,无法可靠地转储为 SQL。我知道没有任何工具可以一直做到这一点。

处理此问题的正确方法是授予 SQL Server 用户访问该文件夹的权限。找出正在使用的用户(可能是 procexp.exe?)并添加必要的权限。

于 2013-03-18T10:47:46.760 回答
0

是的,但比你想象的要复杂得多您需要实现一个VDI 规范组件(根据定义,它是本机代码,不是托管的)。然后,您可以将此 VDI 加载到 SQL Server 并备份到其中。请参阅SQL Server 中的 VSS 和 VDI 备份的亮点。看看SQL Server 压缩备份

当然,这不太可能是您想要的,实施 VDI 的人不需要问这样的问题。那么你真正想做的是什么?似乎您想要的更多是为数据库编写脚本,其中有SMO Scripter

于 2013-03-18T13:11:23.770 回答