【问题标题】:Why won't Visual Studio 2008 create .mdf files with SQL Server 2008 Developer installed?为什么 Visual Studio 2008 不会在安装了 SQL Server 2008 Developer 的情况下创建 .mdf 文件?
【发布时间】:2008-11-16 00:18:11
【问题描述】:

我正在尝试一些 ASP.NET MVC 教程,其中一个包含以下步骤:

  • 右键单击“App_Data”文件夹,然后选择“添加新项目”
  • 在“数据”类别下选择“SQL Server 数据库”。

但是,一旦我这样做了,我会从 Visual Studio 收到以下消息:

与 SQL Server 文件 (*.mdf) 的连接需要 SQL Server Express 2005 才能正常运行。请验证组件的安装或从网址下载...

问题是我已经安装了 SQL Server 2008 开发人员版,如果没有必要,我真的宁愿不安装任何 Express 版本(2005 或 2008)。这个问题有解决办法吗?

【问题讨论】:

  • 肯的答案实际上应该是公认的答案。这是 Visual Studio 2008 中需要修补程序的错误。它与安装 64 位版本的 SQL Server Express 和 Visual Studio 2008 SP1 有关。 stackoverflow.com/questions/293281/…
  • 我不这么认为;他仍在谈论使用 SQL Server Express,我在其中描述了 SQL Server Developer 版本的情况。据我所知,GalacticCowboy 的解释仍然有效。

标签: sql-server asp.net-mvc visual-studio-2008


【解决方案1】:

我在 64 位 Windows 7(使用 64 位 SQL Server Express 2008)上也遇到了这个问题。

Microsoft Support Knowledge Base article 中引用了两种解决此问题的方法:

1.解决方法

要解决此问题,请卸载 64 位版本的 SQL Server Express 2008,然后安装 32 位版本的 SQL Server Express 2008.

如果您不想进行卸载/安装,请尝试下面的 Hotfix 方法。

2。修补程序

现在可以使用受支持的修补程序 来自微软。然而,它是 仅用于纠正问题 这篇文章描述的。应用它 仅适用于正在经历的系统 这个具体的问题。

虽然文章本身不包含修补程序的链接,但您可以在此处获取: http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=957944

【讨论】:

    【解决方案2】:

    为了阐明 masfenix 的回复,SQL Express 支持成熟的 SQL Server 不支持的一项功能:“用户实例”数据库。安装 SQL Express 并在 App_Data 文件夹中有一个 mdf 文件后,应用程序将根据需要动态附加和分离它。对于业余爱好者或小型企业网站,这可能是完美的。如果您在企业的其他地方运行 SQL,您可能不想走这条路,因此该功能对您没有用处。

    【讨论】:

      【解决方案3】:

      实际上,SQL express 是一个与 SQL Server 2005 完全不同的数据库引擎。所以是的,如果你想使用 mdf 文件,你需要 SQL Express。

      【讨论】:

      • 哦,这意味着我将不得不使用创建单独数据库并在项目中引用它的常规方法,而不是教程建议的方法。谢谢:)
      • 这是非常具有误导性的陈述。 SQL Express 和完整的 SQL Server 产品实际上共享相同的数据库引擎(以及几乎所有其他产品)。完整服务器不支持用户实例数据库的原因超出了我的理解,但这很可能是业务决策或安全路由。在实现方面,所有位都在那里。
      • 实际上它们并不相同(因此存在差异)。排序和优化器是不同的,多 cpu 使用,内存分配例程,很多变化。它们可能在功能上相同,但在引擎盖下却截然不同。可能不支持他们的原因是他们的表现非常糟糕。在没有演示的情况下使用它们不是最佳实践。基于文件的连接速度要慢很多。
      【解决方案4】:

      我想指出我已经安装了开发版和快捷版。而且我仍然遇到同样的错误。我认为 Express 版本必须作为单个实例安装。

      【讨论】:

      • 您应该确保 Visual Studio 知道您的 SQL Server 实例。转到 Visual Studion -> 工具 -> 数据库工具 -> 数据连接 -> [实例名称]。确保它为您的 SQL Express 列出正确的实例名称(通常是“SQLEXPRESS”)。
      【解决方案5】:

      我有同样的问题,但我安装了 sql 2008 express。 有什么方法可以让它与 sql 2008 express 一起工作,所以我不必在我的机器上安装第 4 个 sql 实例? 我已经有sql 2005、sql 2008、sql 2008 express

      什么... :)

      【讨论】:

      • 您应该确保 Visual Studio 知道您的 SQL Server 实例。转到 Visual Studion -> 工具 -> 数据库工具 -> 数据连接 -> [实例名称]。确保它为您的 SQL Express 列出正确的实例名称(通常是“SQLEXPRESS”)。
      • 为什么不在您已安装并使用的其他 3 个实例之一中创建一个数据库?为什么要使用基于文件的连接呢?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-03
      • 2010-10-29
      • 1970-01-01
      • 2012-02-25
      • 1970-01-01
      • 2021-06-10
      相关资源
      最近更新 更多