SQL Server Express连接字符串

14

SQL Server连接字符串和Express版本之间有区别吗?!

6个回答

20
默认情况下(虽然我不建议这样做1),Sql Express被安装为命名实例。这意味着您必须像这样连接:Server=servername.com\SQLEXPRESS而不是Server=servername.com
像往常一样,connectionstrings.com有好东西。 1我不建议使用命名实例,因为它们在不同的端口上运行,这使得防火墙变得麻烦。此外,对我来说,在一台计算机上运行多个MSSQL服务器而不是仅托管多个数据库没有太多意义 - 所以我真的不确定目的是什么。

没有安装\SQLEXPRESS是否会导致连接 SQL 数据库时出现错误?! - jDeveloper
@luvPlsQL - 是的,它会这样做。首先,它会尝试连接标准的1433端口 - 可能没有运行。其次,它会尝试访问默认实例 - 但该实例不存在。另外,需要注意的是 - 较旧的SQL客户端需要使用别名才能通过TCP/IP访问命名实例。 - Mark Brackett

3

是的,有一个区别 - 最大的区别在于完整版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获取更多信息。

1

用于访问 SQL Server 和 SQL Server Express 的连接字符串?

通常不需要。使用 Express 的好处在于,可以在本地进行开发,并且只需进行最少的更改即可将数据访问迁移到 SQL Server。


0
唯一的区别是,如果Express是这样设置的,您将不得不在连接字符串中指定一个命名实例。2005年没有选择,但2008年有。
Data Source=localhost\SQLExpress

这里有一个连接字符串的绝佳参考


0

我最近从Telerik网站下载了一个示例应用程序,但在我安装了SQL Server 2008 SP1开发者版的计算机上无法运行,直到我执行查找和替换所有“User Instance=True”为“User Instance=False”。

在任何人开始烦恼之前,请先听我说完。我的情况可能是独特的(但不应该是),因为我没有安装SQL Server 2008 Express来运行示例应用程序(例如Telerik),而是在我的SQL Server 2008 Developer Edition上安装了第二个命名实例,即sqlexpress。这样当Telerik(或其他应用程序)演示应用程序尝试连接到“Data Source =. \ sqlexpress”时,它并不知道它真正连接的是“大型SQL Server”(这就是此发布的SQL Server Developer版的目的)。

你需要理解的关键概念(我敢说是“金句”)是这些:

SQL Express允许(实际上假定如果缺失)User Instance=True,因此如果您正在运行名为sqlexpress的命名实例在“big SQL”(Developer、Standard、Enterprise或Data Center)上,则只需在连接字符串中查找/替换User Instance=True为User Instance=False,您的问题就解决了。即使是“Attach database”(我在Telerik connectionStrings部分的web.config中看到的)也适用于“big SQL”(与此线程中某人发布的相反)。

这里是一个实际示例,直接从Telerik 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
除了之前的帖子外:如果您在MSSQL Server 2008上设置Telerik示例时遇到问题,可以执行以下操作:
  1. 打开LiveDemos Telerik VS解决方案
  2. 为VS主文件中的telerik .mdf文件设置数据库连接
  3. 复制连接字符串以连接到web.config文件
  4. 并在字符串末尾添加“Integrated Security=True;User Instance=False”。

附言:Fred Morrison - 谢谢,你是我今天的“英雄”,我只是在你的帮助下解决了Telerik Live Demo的问题!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接