Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用C从SQL Server数据库备份和恢复筛选的数据_C#_Sql Server_Database_Backup - Fatal编程技术网

C# 使用C从SQL Server数据库备份和恢复筛选的数据

C# 使用C从SQL Server数据库备份和恢复筛选的数据,c#,sql-server,database,backup,C#,Sql Server,Database,Backup,我希望为我的应用程序实现备份和恢复功能。这里我想备份过滤后的数据,而不是整个数据库 例如,为数据库中的所有表选择*from Sales,其中CompanyId=1,并将这些数据写入file.bak文件,稍后可用于恢复目的 我这里的问题是,有没有任何方法可以使用SMO实现此功能?如果你对如何实施这一点有任何其他建议,我很高兴听到 朋友们,请帮帮我。实现此备份没有本机方法,但要获得此功能,您可以采取一些棘手的解决方法 如果每个表都包含CompanyId字段,则可以基于公司Id创建分区架构/函数,并将

我希望为我的应用程序实现备份和恢复功能。这里我想备份过滤后的数据,而不是整个数据库

例如,为数据库中的所有表选择*from Sales,其中CompanyId=1,并将这些数据写入file.bak文件,稍后可用于恢复目的

我这里的问题是,有没有任何方法可以使用SMO实现此功能?如果你对如何实施这一点有任何其他建议,我很高兴听到


朋友们,请帮帮我。

实现此备份没有本机方法,但要获得此功能,您可以采取一些棘手的解决方法

如果每个表都包含CompanyId字段,则可以基于公司Id创建分区架构/函数,并将架构的每个分区放在单独的文件组中。这样就可以将每个CompanyId的数据拆分到不同的文件组中,这是一个关键,因为在SQL中可以执行文件/文件组级别的备份,而不是整个数据库


除非是最后一个选项,否则我不会这样做。我想我会准确地计算出备份/恢复要求,并检查是否有更好的选项/选择。

Andrew,感谢您的帮助。所以我应该在这里使用一个配分函数。我需要一个建议。我应该为每个公司创建文件组吗?它会提供更高的性能吗?还是只在备份时执行分区?我认为第一个选择是好的。但我需要创建动态分区函数,它会在每次公司创建时更新,这将导致重新索引。我对这种分区和其他东西不熟悉。到目前为止,我只使用了Select、insert/update/delete命令。。我正在努力理解这些事情。我在前面的评论中所说的是否正确?性能-取决于它的设置方式和IO,您将在查询中获得分区消除,只要每个查询在where子句中实际指定了分区键,因此一些查询将获得,但可能不是全部。插入/更新/选择所有正常工作,从该透视图上看不可见。分区的创建/维护是一个更大的问题——如果使用对齐索引,添加新分区不会导致重新索引——这意味着索引是在同一个方案上分区的。hmm。。谢谢你的帮助。。我将尝试工作分区并为每个公司创建文件组。这也是备份操作的帮助。这里还有一个问题。假设我在这里安装了3个公司和3个文件组,分区函数将有3个范围拆分器。当我试图添加新的公司时,我将用这个分区函数修改分区函数和表。那么,数据拆分会从头开始吗?还是只有要插入的数据才会影响?