C# SQL Server 2008 R2快速还原

C# SQL Server 2008 R2快速还原,c#,sql,sql-server-2008r2-express,C#,Sql,Sql Server 2008r2 Express,我正在从事一个项目,其中我使用visual c#作为前端,SQL Server 2008 R2 Express作为后端 现在我知道SQL Server express数据库的大小限制为10 GB,因此我编写了在达到拾取限制时进行数据库备份的代码,并在备份成功后清空数据库 我想知道恢复备份文件的最佳方法是什么,这样我的当前应用程序后端(我之前清空了)就不会受到干扰 如果我在我当前的数据库中恢复相同的内容,可以吗?在这种情况下,我有一个问题要问,它是否会影响我的应用程序的工作,因为我的应用程序是实时

我正在从事一个项目,其中我使用visual c#作为前端,SQL Server 2008 R2 Express作为后端

现在我知道SQL Server express数据库的大小限制为10 GB,因此我编写了在达到拾取限制时进行数据库备份的代码,并在备份成功后清空数据库

我想知道恢复备份文件的最佳方法是什么,这样我的当前应用程序后端(我之前清空了)就不会受到干扰

如果我在我当前的数据库中恢复相同的内容,可以吗?在这种情况下,我有一个问题要问,它是否会影响我的应用程序的工作,因为我的应用程序是实时的,并且每隔15分钟就会恢复一次。每隔一段时间在数据库中存储一些值

是否需要编写其他实用程序来查看旧数据

每天大约有50MB的数据被插入到数据库中,因此需要大约8个月的时间才能达到选择大小(根据我的粗略计算)。就应用程序的性质而言,用户不会经常使用归档数据。请考虑这一点,并建议我的方法。< /P>
提前谢谢

如果在一个全新的数据库服务器中输入数据,旧的查询将无法在新的数据库服务器上运行。因为SQL Express限制不是每个数据库,而是每个数据库服务器。 您可以创建新的SQL Express服务器,链接服务器,并使用链接服务器()创建查询

您需要调整您的查询

如果您现在按以下方式查询数据:

SELECT em.Name, em.Telefone FROM employees AS em
你也需要参考数据库

SELECT [server1\db1].dbo.em.Name, [server1\db1].dbo.em.Telefone FROM [server1\db1].dbo.employees AS em
用于当前数据库,以及

SELECT [server2\backup].dbo.em.Name, [server2\backup].dbo.em.Telefone FROM [server2\backup].dbo.em.Name
这样做是可能的,但我不建议这样做。如果您的数据已经超过10GB,那么您可能拥有大型表。链接服务器上的每个表都会完全复制到您的服务器上,这可能会导致严重的网络流量,并且需要相当长的时间才能执行


我会考虑使用SQL标准版 当达到某个大小时,它将转储(或复制mdf+ldf)到存档中。
并与时间戳一起存储(从-到)

当需要数据时,相关mdf将作为新的“脱机”数据库附加。
(您可以使用连接字符串将MDF文件附加到SQL Server。)
并使用该连接,而不是带电连接

应用程序可以在在线数据库上顺利运行。
阅读、加载等时……
从临时附加和分离的数据库文件执行

看看:
了解如何将MDF附加到SQL Server实例。

感谢您的及时回复。每天大约有50MB的数据被插入到数据库中,因此需要大约8个月才能达到拾取大小。就应用程序的性质而言,用户不会经常使用归档数据。请考虑这一点,并建议我的方法…谢谢你的答复。你确实了解我的问题,你的建议也很有意义。事实上,我也在考虑做类似的事情。。但由于我是新手,我需要做更多的家庭作业来实现这一点。。如果您能提供类似代码的内容,我将不胜感激。我还想问一件事,因为我们知道sql express 2008 server的数据库大小限制为10GB,那么,还原的数据库+currentDB是否可能超过10GB。。?你的反馈对我真的很有帮助。第一,我认为限制是每个数据库,而不是每个实例。第二,您还可以有两个SQL Server Express实例:)