在App_Data中的MDF文件上运行SQL脚本

时间:2012-07-14 20:29:51

标签: asp.net sql ssms mdf app-data

我有以下设置:

  • 开发:我自己的计算机使用带有连接字符串的MDF文件,该连接字符串引用我的app_data文件夹。
  • 生产:具有自己的SQL数据库的在线服务器

当我想在我的系统中创建一个新的表/字段时,我在部署中创建它,然后在没有数据的情况下在生产中运行这些脚本。

现在,我处于相反的情况:我已经从我的生产服务器生成脚本,并希望将它们运行到我的本地MDF文件。

我该怎么做?到目前为止我看到的所有答案都没有帮助我。

我尝试了以下

我试图在Visual Studio中的“运行查询”中运行整个SQL脚本,但是我得到了“不支持Set SQL构造或语句”。错误。

我想我必须在Microsoft SQL Management Studio中以某种方式打开MDF文件 - 但我真的找不到让它全部工作的方法。

修改

半年后,我一直在使用建议作为答案的方法。它是迄今为止最好的解决方案。项目中没有更多MDF文件!

我强烈建议任何阅读此内容的人开始在您的本地数据库中使用您的数据库。

2 个答案:

答案 0 :(得分:2)

在我看来,整个 AttachDbFileName = 方法存在缺陷。由于.mdf文件未附加到已安装的SQL Server实例,因此您无法执行许多操作:

  • 您无法使用BACKUP备份数据库
  • 您无法轻松地对数据库执行.sql脚本
  • 还有很多东西

我认为唯一真正可行的解决方案是

  1. 安装SQL Server Express(你已经完成了)
  2. 安装SQL Server Management Studio Express
  3. SSMS Express 中创建数据库,为其指定一个逻辑名称(例如YourDatabase
  4. 使用其逻辑数据库名称(在服务器上创建时给定)连接到它 - 并且不要乱用物理数据库文件和用户实例。在这种情况下,您的连接字符串将类似于:

    Data Source=.\\SQLEXPRESS;Database=YourDatabase;Integrated Security=True
    

    其他所有内容都完全与以前相同......

答案 1 :(得分:0)

在Visual Studio中连接到MDF:

https://stackoverflow.com/a/173221/188926

然后,您可以在SQL Server对象资源管理器中打开并运行查询。