【问题标题】:Dump remote SQL Server database and use it locally in a file转储远程 SQL Server 数据库并在本地文件中使用它
【发布时间】:2014-08-25 16:34:10
【问题描述】:

我有一个基于 ASP.NET 并使用 SQL Server 的网站。它每年都会改变,因为它完全为一年一度的活动而疯狂,我想制作一个网站历史 - 让用户能够在子域中打开旧网站。

我的问题是每年我都必须将数据库恢复到原始状态,而且我不能只创建另一个数据库来保存旧数据。所以我在想的是将整个数据库及其结构转储到一个文件中(如.MDF)并更改web.config文件,所以它会使用该文件而不是远程数据库服务器。

但是当我使用 SQL Server 2012 Management Studio 时,我只能导出一个.SQL 文件。有什么办法吗,还是我的方法不对?

备注:

  1. 性能没问题,网站做个展示
  2. 我没有 SQL Server 的管理员权限,只有连接数据
  3. 我将 Visual Studio 2013 用于我的(Web 应用程序)项目

【问题讨论】:

  • 您是否考虑过在擦除所有数据并使用不同名称恢复备份之前进行备份
  • @AaronBertrand - 我一次可以拥有的数据库数量有限
  • 无论如何,您似乎并不真正需要单独的数据库来完成您的工作。您希望当前的网站仅适用于今年的销售/产品等,对吗?并且您希望用户能够根据需要查看旧数据?好的,所以在每个表中添加一个 YEAR 列,并按当前年份过滤当前网站,让用户查看以前的年份。
  • 我真的不想对数据库本身进行更改,因为它会让我在每个查询中添加额外的 where 子句,这就是为什么我想到将基础转储到一份文件。如果不行,那我就用一些 HTML 下载工具来解决这个问题
  • 添加年份列是一个不错的建议。这可能需要大量的前期工作,但它是一次性的永久修复,并且会得到你所追求的。

标签: c# asp.net sql-server sql-server-2012


【解决方案1】:

您有多种选择。

  1. 在 MDF 文件中使用单独的数据库方法

  2. 在同一数据库中使用不同的表,例如:event_2010 ... event_2014

不要忘记将每个站点在 IIS 中响应的域更改为像 2013.myawesomeevent.com 这样的每个站点的子域。并将每个安装保存在单独的文件夹中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 2023-03-12
    • 2011-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多