How can I specify to use SQL Server LocalDb 2014 rather than SQL Server LocalDb 2016 in the connection string?

前端 未结 2 1873
说谎
说谎 2020-12-30 15:10

Our application uses SQL Server LocalDb 2014 as the database engine. The connection string we use is

\"Data Source=(localdb)\\MSSQLLOCALDB;Initial Catalog=O         


        
相关标签:
2条回答
  • 2020-12-30 15:48

    You can use the sqllocaldb command line tool to create and delete instances, so delete the instance on 2016 (version 13.0) like this:

    sqllocaldb delete "mssqllocaldb"
    

    And then create that instance name on 2014 (version 12.0) using:

    sqllocaldb create "mssqllocaldb" 12.0
    

    There is also a nice .NET library available for doing this:

    https://github.com/martincostello/sqllocaldb

    0 讨论(0)
  • 2020-12-30 16:09

    Well, seeing that apart from Erik's answer no solutions have been provided, we must assume that indeed you cannot specify which flavour of SQL Server LocalDb you wish to use when using "Data Source=(localdb)\mssqllocaldb" in a connection string.

    A drawback of Erik's solution is that it does not play nice with other applications that may use the default instance of LocalDb (MSSQLLocalDb). I found a different approach in using a so called named instance: an instance of LocalDb private to your application. While defining a named instance you can specify the version of LocalDb you want to use: 12.0 for LocaldDb 2014, 13.0 for Localdb 2016.

    There are two ways to create a named instance:

    1. Using the sqllocaldb commandline tool:

    SqlLocalDB.exe create "MyNamedInstance" 12.0 -s

    The -s parameter starts the instance immediately.

    1. Specifying the named instance in app.config:

    For this add to the <configSections> tag:

    <section name="system.data.localdb"
             type="System.Data.LocalDBConfigurationSection,System.Data,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089"/>
    

    Then add a new tag:

    <system.data.localdb>
        <localdbinstances>
          <add name="MyNamedInstance" version="12.0" />
        </localdbinstances>
    </system.data.localdb>
    

    You can now specify the named instance in the connection string thus:

    "Data Source=(localdb)\mynamedinstance" 
    
    0 讨论(0)
提交回复
热议问题