簡體   English   中英

如何在連接字符串中指定使用 SQL Server LocalDb 2014 而不是 SQL Server LocalDb 2016?

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

我們的應用程序使用 SQL Server LocalDb 2014 作為數據庫引擎。 我們使用的連接字符串是

"Data Source=(localdb)\MSSQLLOCALDB;Initial Catalog=OurDatabase;MultipleActiveResultSets=True;Integrated Security=True;AttachDBFilename=|DataDirectory|OurDatabase.mdf"

現在,在我們的其中一台計算機上安裝了 VS 2015SP3 和最新版本的 SQL Server 對象,我們的應用程序開始使用 SQL Server LocalDb 2016。這是不可取的,因為我們在計算機和計算機之間定期交換數據庫文件的備份現在,在沒有 LocalDb 2016 的計算機上無法讀取以 LocalDb 2016 格式制作的備份。

問題是連接字符串沒有指定應該使用哪個版本的 LocalDb。 有沒有辦法強制 LocalDb 2014(或 2016,如果我們決定升級?)

好吧,看到除了 Erik 的回答之外沒有提供任何解決方案,我們必須假設您確實無法指定在連接字符串中使用"Data Source=(localdb)\\mssqllocaldb"時希望使用的 SQL Server LocalDb 的風格。

Erik 解決方案的一個缺點是,它與其他可能使用 LocalDb 的默認實例 (MSSQLLocalDb) 的應用程序不兼容。 我發現了一種使用所謂命名實例的不同方法:您的應用程序私有的 LocalDb 實例。 在定義命名實例時,您可以指定要使用的 LocalDb 版本:LocaldDb 2014 為 12.0,Localdb 2016 為 13.0。

有兩種方法可以創建命名實例:

  1. 使用sqllocaldb命令行工具:

SqlLocalDB.exe create "MyNamedInstance" 12.0 -s

-s參數立即啟動實例。

  1. 在 app.config 中指定命名實例:

為此添加到<configSections>標簽:

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

然后添加一個新標簽:

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

您現在可以在連接字符串中指定命名實例,因此:

"Data Source=(localdb)\mynamedinstance" 

可以使用sqllocaldb命令行工具創建和刪除實例,所以在2016(13.0版)上刪除實例如下:

sqllocaldb delete "mssqllocaldb"

然后使用以下命令在 2014(版本 12.0)上創建該實例名稱:

sqllocaldb create "mssqllocaldb" 12.0

還有一個不錯的 .NET 庫可用於執行此操作:

https://github.com/martincostello/sqllocaldb

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM