繁体   English   中英

如何将远程SQL Server Express数据库部分复制到本地SQL Server Express数据库?

[英]How to do a partial copy of a remote SQL Server Express database to a local SQL Server Express database?

我处于一种需要从远程SQL Server(2005/2008 Express Edition)创建数据库的部分副本并将其存储在本地SQL Server(2005/2008 Express Edition)数据库中的情况。 本地副本将具有相同的架构定义,但仅包含来自远程数据库的部分数据。

必须使用C#代码中的参数为本地数据库赋予唯一名称,类似于

TodaysDate_SerialNumber_MachineNumber_DatabaseName    
e.g.  20100622_1_3_DatabaseName

(尚未赶上命名方案,尚未决定。)

我正在使用VS2010在.net 3.5上的C#中工作。

到目前为止,我的想法是从C#代码为本地SQL服务器上的数据库执行创建脚本,然后将数据从远程数据库复制到本地数据库,并根据我的实际需要进行过滤。 这些操作必须从C#代码开始,但不一定需要全部为C#代码。 但是我还没有决定。 您认为做我想做的最好的选择是什么?

(顺便说一句,如果我不清楚,请让我知道,我将尝试使用更多信息来更新问题。)

如果您完全在代码中进行此操作,则SqlBulkCopy可能是最好的选择。

您将与每个数据库都有sql连接,然后有一条select语句在源数据库上运行,这会将行插入到目标数据库/表中。

答案确实取决于您最自在地做什么。

我可能会在本地SQL Express上设置链接服务器,并编写一个SQL脚本来完成整个任务。 它可以使用RAISERROR ... WITH NOWAIT将进度报告回C#应用程序,并且可以通过设置SqlInfoMessageEventHandler异步处理这些消息。

也许您可以创建数据库的备份,将其下载到本地机器,在其中创建一个新的空数据库,然后使用“ override”选项将备份还原到空数据库。 之后,您可以删除那些您不想“复制”的记录。

您可以使用Microsoft SQL Management Studio创建备份和还原脚本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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