2009-08-07 303 views

回答

10

默認情況下(雖然我不推薦它),Sql Express安裝爲named instance。這意味着您必須連接像Server=servername.com\SQLEXPRESS而不僅僅是Server=servername.com

一如既往,connectionstrings.com有好東西。

我不建議命名實例,因爲它們run on a different port,它使防火牆成爲PITA。另外,如果您只需託管多個數據庫,那麼在計算機上運行超過1個MSSQL服務器就毫無意義 - 所以我不太確定它的重點。

+0

會不會有這個(\ SQLEXPRESS)原因和錯誤無法連接到SQL?! – jDeveloper 2009-08-08 00:06:45

+0

@luvPlsQL - 是的,它會的。首先,它會嘗試連接標準的1433端口 - 它可能沒有運行。其次,它會嘗試擊中默認實例 - 這不存在。此外,FYI - 較早的SQL客戶端需要別名才能通過TCP/IP命中實例。 – 2009-08-08 02:26:59

1

連接字符串用來訪問SQL Server和SQL Server Express?

一般來說,沒有。這是使用Express的好處;在本地進行開發並以最少的更改將您的數據訪問遷移到SQL Server。

0

唯一的區別是,如果Express設置爲這種方式,則必須在conn字符串中指定一個命名實例。 2005年沒有選擇,但2008年。

Data Source=localhost\SQLExpress 

這是great reference for connection strings

0

是的,有一個區別 - 最重要的是你在完整的SQL Server中不會有AttachDbFilename。

SQL Server Express的連接字符串:

Server=.\SQLExpress;AttachDbFilename=c:\mydbfile.mdf;Database=dbname; Trusted_Connection=Yes; 

典型的正常SQL Server連接字符串:

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI; 

更多信息,請參見connectionStrings.com

+0

如果你要downvote請證明! – RichardOD 2009-08-07 20:17:04

0

我最近從Telerik網站下載了一個示例應用程序,無法讓它在我的機器上運行,該機器只安裝了SQL Server 2008 SP1開發版,直到我找到並替換了所有「User Instance = True」 「用戶實例=假」。

在任何人走了之前,他們的內褲都扭在一個結,首先聽到我。我的情況可能是(但不應該是)唯一的,因爲我不是僅僅爲了運行示例應用程序(例如Telerik)而安裝SQL Server 2008 Express,而是簡單地安裝了名爲SQL Server的第二個命名實例,您猜對了,我的sqlexpress SQL Server 2008 Developer Edition的副本。這樣,當Telerik的(或你的名字)演示應用程序試圖連接到「數據源= \ SQLEXPRESS」,這是沒有什麼它真的連得是「大的SQL Server」(這是SQL Server開發版更明智是爲了這篇文章的目的)。

關鍵conecpts(我敢說「錢報價」),你需要了解有這些:

SQL Express允許(實際上是假定如果丟失)用戶實例=真,所以,如果你正在運行一個命名實例名爲sqlexpress在「大型SQL」(開發人員,標準,企業或數據中心)上,那麼您只需在connecton字符串中查找/替換User Instance = True和User Instance = False,您的擔憂就結束了。即使「附加數據庫」的東西(我在他們的web.config中的Telerik的connectionStrings節看到的)工作在「大SQL」(相反的是有人在前面這個線程發佈)。

這裏是直接從Telerik的web.config文件的web.config中採取一個實際的例子後,我的「固定起來」:

<connectionStrings> 
    <add name="NorthwindConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Northwind.mdf;Integrated Security=True;User Instance=False" providerName="System.Data.SqlClient"/> 
    <add name="TelerikConnectionString" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Telerik.mdf;Integrated Security=True;User Instance=False" providerName="System.Data.SqlClient"/> 
    <add name="NorthwindConnectionString35" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Northwind.mdf;Integrated Security=True;User Instance=False" providerName="System.Data.SqlClient"/> 
    <add name="TelerikConnectionString35" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|Telerik.mdf;Integrated Security=True;User Instance=False" providerName="System.Data.SqlClient"/> 
    <add name="NorthwindEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Northwind.mdf;Integrated Security=True;User Instance=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/> 
    <add name="TelerikEntities" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Telerik.mdf;Integrated Security=True;User Instance=False;MultipleActiveResultSets=True&quot;" providerName="System.Data.EntityClient"/> 
    <add name="EditorFileBrowserDatabase" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|EditorDBStorage.mdf;Integrated Security=True;User Instance=False" providerName="System.Data.SqlClient"/> 
</connectionStrings> 
0

除了以前的帖子:如果你有安裝Telerik的煩惱MSSQL Server 2008上的樣品,你可以做到以下幾點:

  1. 打開LiveDemos Telerik的VS解決方案Telerik的
  2. 設置數據庫連接.MDF文件VS主
  3. 的Web.config文件
  4. ,並且增加連接複製連接字符串「集成安全性=真;用戶實例=假」的字符串的結束。

PS。弗雷德·莫里森 - 感謝名單,你是我的「天的人」,我剛修好Telerik的現場演示問題,您發佈的幫助!