2

我有以下设置:

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

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

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

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

我尝试了以下方法

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

我想我必须以某种方式在 Microsoft SQL Management Studio 中打开 MDF 文件——但我真的找不到让这一切正常工作的方法。

编辑

半年后,我一直在一次又一次地使用建议的方法作为答案。这是迄今为止最好的解决方案。项目中不再有 MDF 文件!

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

4

2 回答 2

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
    

    其他一切都和以前完全一样...

于 2012-07-15T20:35:28.097 回答
0

在 Visual Studio 中连接到 MDF:

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

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

于 2014-06-05T09:34:26.577 回答