【问题标题】:Visual Studio 2013 does not create SQL Server 2014 LocalDB databaseVisual Studio 2013 不创建 SQL Server 2014 LocalDB 数据库
【发布时间】:2014-11-17 16:22:46
【问题描述】:

我正在 Visual Studio 2013 社区的 VB.NET 项目上工作(感谢 MS)。 SQL Server 2014 LocalDB 已安装在我的机器上(以防万一,请访问 MS 网站并获得最新最好的 LocalDB 副本)。在我的项目中添加了Service-based Database。在数据库对象的属性中,连接字符串是Data Source=(LocalDB)\v11.0;...,这意味着它使用的是旧版本的数据库。试图修改连接(服务器资源管理器>右键单击我的数据库>修改连接>高级>),但没有一个选项指向正确的服务器。

根据MS documentation,正确的字符串应该是"Server=(localdb)\MSSQLLocalDB;..."

还有其他人面临同样的问题吗?有什么解决方法吗?

【问题讨论】:

  • 您可以使用 SQL Server 对象资源管理器连接到 (localdb)\MSSQLLocalDB 吗?
  • 这里有同样的问题,我没有找到任何文档告诉我为什么会这样。 LocalDB Code First 功能可能在 Visual Studio 中被锁定?

标签: sql-server visual-studio visual-studio-2013 localdb


【解决方案1】:

我找到了解决方案。

删除了现有的数据库。创建了一个新数据库 SQL Server Management Studio 2014。将其放在解决方案文件夹中。通过服务器资源管理器连接到该数据库:将 Server Name: 设置为 (localdb)\MSSQLLocalDB 并将 Attach a database name: 设置为 .mdf 文件。

【讨论】:

    【解决方案2】:

    LocalDB 实例位于以下文件夹中:

    %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances
    

    该实例很可能只是 V12V12.0ProjectsV12(这是我为 SQL Server 2014 LocalDB 所拥有的)

    所以,假设你有“ProjectV12”实例文件夹,服务器名称是:

    (localdb)\ProjectV12
    

    【讨论】:

    • 作为记录,我最近安装了 64 位 SQL Server Express 2014(带工具),但我的 LocalDb 实例在这个位置仍然是“v11.0”。我可以使用“(localdb)\v11.0”服务器名称连接到它。我相信这个 LocalDb 实例来自之前安装的 SQL Server 2012 Express。要连接到 LocalDb 的 2014 实例,我使用连接字符串“(localDB)\MSSQLLocalDB”。
    【解决方案3】:

    上面newprint的“解决方案”肯定会奏效,从长远来看可能会让生活更轻松。

    但是,我只是使用这篇文章中的说明更直接地解决了同样的问题: https://social.msdn.microsoft.com/Forums/sqlserver/en-US/b75bef7e-13f3-4658-8d43-9df12ab4c320/connecting-localdb-using-sql-server-management-studio-express 寻找 ReadyRoll 2012 年 8 月 26 日的回答,尽管我在下面复制了他的指示以确保安全。

    如果您在使用 Visual Studio 解决方案时创建数据库,VisualStudio 会创建一个 LocalDb 实例。然而,从 Management Studio Express 的角度来看,“服务器名称”是一个看起来很奇怪的字符串。

    来自 ReadyRoll 的 MSDN 帖子:

    1. Get the address of a (localdb) instance by running the following command:
    
    "C:\Program Files\Microsoft SQL Server\110\Tools\Binn\SqlLocalDB.exe" info [InstanceName]
    (if its the default instance you're interested in, specify v11.0 as the [InstanceName]
    
    2. Copy the value returned in the "Instance pipe name", e.g. np:\\.\pipe\LOCALDB#13E05E01\tsql\query
    
    3. Add a new server registration in SSMS and paste the "Instance pipe name" value as the Server Name.
    NOTE: It is not necessary to specify "Named pipes" as the protocol. SSMS should detect the appropriate protocol for you.
    

    注意:我有一段时间无法理解第 3 步。我刚刚将运行 SqlLocalDb.exe 得到的字符串粘贴到 MSE 连接到服务器对话框中的“服务器名称”字段中:

    【讨论】:

      猜你喜欢
      • 2015-01-13
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多