我们可以为 SQL Server 和 SQL Server Express 提供通用的连接字符串吗?
Posted
技术标签:
【中文标题】我们可以为 SQL Server 和 SQL Server Express 提供通用的连接字符串吗?【英文标题】:Can we have generalized connection string for SQL Server and SQL Server Express? 【发布时间】:2009-10-23 14:13:00 【问题描述】:我有一个部署在机器上的 WCF 服务。此 WCF 服务可以配置为 SQL Server 或 SQL Server Express。
注意:SQL 数据库位置可以是部署 WCF 服务的其他机器。
我将以下信息放入 XML 文件中:
-
用户名
密码
服务器名称
机器名称
如果是 SQL Server Express
ServerName 属性是“SQLEXPRESS”。在内部,我将 ServerName 附加到 MachineName 中,因此 serverName 为:
机器名\SQLEXPRESS
传递给连接字符串。
如果是 SQL Server
当我将 ServerName 传递给 SQL Server 时,它会引发异常。
请指导我找到最佳方法!
【问题讨论】:
您能否向我们展示其中的两个设置 - 一个用于 SQL Server,一个用于 Express 版本 - 并向我们展示生成的连接字符串是什么?? 【参考方案1】:您可以使用相同的连接字符串格式连接到 SQL Server Express 和完整版。
只需确保您使用正确的字符串,对于默认安装,这样的字符串很常见。
Data Source=MachineName\SQLExpress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
对于完整的 SQL Server
Data Source=MachineName;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;
【讨论】:
【参考方案2】:有什么例外?另外我不确定 ServerName 和 MachineName 之间有什么区别。也许您的意思是 ServerName 和 InstanceName?你应该这样构造你的字符串(伪代码,我不知道你使用的是什么语言):
DataSource = ServerName
If (InstanceName != "")
DataSource += "\" + InstanceName
【讨论】:
【参考方案3】:最可能的原因是您的 MSSQLSERVER 实例在默认实例而不是命名实例下运行(这是 SQL Express 所做的)。一种解决方法是配置一个本地属性文件,该文件包含特定于环境的连接字符串。然后在配置文件本身中引用该文件,或者让您的部分构建过程将信息合并到配置文件中。
【讨论】:
以上是关于我们可以为 SQL Server 和 SQL Server Express 提供通用的连接字符串吗?的主要内容,如果未能解决你的问题,请参考以下文章