SQL Server 2008连接字符串写法大全(备用)

本文详细介绍了使用不同技术连接SQLServer的方法,包括.NET Framework、OLEDB、ODBC等多种连接方式及参数配置,如信任连接、标准安全连接、MARS功能等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、.NET Framework Data Provider for SQL Server

类型:.NET Framework类库
使用:System.Data.SqlClient.SqlConnection
厂商:Microsoft

标准安全连接

Data Source = myServerAddress;Initial Catalog = myDataBase;User Id = myUsername;Password = myPassword;

使用服务器名\实例名作为连接指定SQL Server实例的数据源。如果你使用的是SQL Server 2008 Express版,实例名为SQLEXPRESS。


可替代的标准安全连接 

Server = myServerAddress;Database = myDataBase;User ID = myUsername;Password = myPassword;Trusted_Connection = False;

这条连接字符串跟上一条效果一样。把这条写出来只是想说,其实很多连接字符串的关键字有多种写法。


信任连接

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

可替代的信任连接

Server = myServerAddress;Database = myDataBase;Trusted_Connection = True;

 

连接Windows CE设备的信任连接

通常一台Windows CE设备在一个域里是不能被认证和登录的。为了让一台CE设备使用SSPI或信任连接和认证,可以使用下面的连接字符串:

Data Source = myServerAddress;Initial Catalog = myDataBase;Integrated Security = SSPI;User ID = myDomain 
\myUsername;Password = myPassword;

说明一下,这条语句只能在CE设备上用。


使用IP地址的连接

Data Source = 190.168.1.100,1433;Network Library = DBMSSOCN;Initial Catalog = myDataBase;User 
ID = myUsername;Password = myPassword;

这条语句用TCP/IP地址替代了命名管道。在Data Source字段最后的是使用的端口。SQL Server默认使用的端口是1433。


开启MARS功能(multiple active result sets)

Server = myServerAddress;Database = myDataBase;Trusted_Connection = True; MultipleActiveResultSets = true;

MARS不支持ADO.NET 1.0和ADO.NET 1.1。


在连接到SQL Server Express实例时附加一个数据库文件

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

这里为什么还需要Database字段呢?因为如果指定的数据库文件已经被附加,那么SQL Server不会再附加它,而使用已附加的数据库作为默认数据库。

 

在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件

Server = .\SQLExpress;AttachDbFilename = |DataDirectory|mydbfile.mdf; Database = dbname;Trusted_Connection = Yes;

 

在本地SQL Server Express实例上使用用户实例

用户实例这个功能会在连接的过程中,新建一个SQL Server实例。该功能只有在本地SQL Server实例上,且连接时使用通过本地命名通道的Windows认证。这样做的好处是,可以给一个在本地计算机上只有相当有限的管理员权限的用户,新建一个拥有全部权限的SQL Server实例。

Data Source = .\SQLExpress;Integrated Security = true; AttachDbFilename = |DataDirectory|\mydb.mdf;User Instance = true;

若想使用用户实例这个功能,需要先在SQL Server将其开启。开启命令为:

sp_configure 'user instances enabled', '1'

取消命令为:

sp_configure 'user instances enabled', '0'

注:这两条命令只在SQL Server Express中有效。

 

数据库镜像

如果你用ADO.NET或者SQL Native Client去连接一个数据库镜像,当这个数据库镜像进行故障切换的时候,你的应用程序可以利用驱动器的特性去自动重定向连接。当然,你必须在连接字段里指定初始的主服务器和数据库,以及用于故障切换的镜像服务器。

Data Source = myServerAddress;Failover Partner = myMirrorServerAddress;Initial Catalog = myDataBase;Integrated 
Security = True;

上面的例子只是介绍了一下如何使用数据库镜像,你可以将Failover Partner字段跟其他连接字符串功能组合使用。


异步处理

Server = myServerAddress;Database = myDataBase;Integrated Security = True;Asynchronous Processing = True;


二、SQL Server Native Client 10.0 OLE DB Provider

类型:OLE DB Provider
使用:Provider=SQLNCLI10
厂商:Microsoft


标准安全连接

Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase;Uid = myUsername; Pwd = myPassword;

 

信任连接

Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;

 "Integrated Security=SSPI" 和 "Trusted_Connection=yes"是等价的。


连接一个SQL Server实例

Provider = SQLNCLI10;Server = myServerName\theInstanceName;Database = myDataBase; Trusted_Connection = yes;


用户名、密码提示

oConn.Properties("Prompt") = adPromptAlways
oConn.Open "Provider = SQLNCLI10;Server = myServerAddress;DataBase = myDataBase;

 

开启MARS功能 (multiple active result sets)

Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;MARS Connection = True;

 

加密模式

Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase; Trusted_Connection = yes;Encrypt = yes;

 

在连接到SQL Server Express实例时附加一个数据库文件

Provider = SQLNCLI10;Server = .\SQLExpress;AttachDbFilename = c:\asd\qwe\mydbfile.mdf; Database = dbname; 
Trusted_Connection = Yes;

 

在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件

Provider = SQLNCLI10;Server = .\SQLExpress;AttachDbFilename = |DataDirectory|mydbfile.mdf; 
Database = dbname;Trusted_Connection = Yes;

 

数据库镜像

Provider = SQLNCLI10;Data Source = myServerAddress;Failover Partner = myMirrorServerAddress;Initial 
Catalog = myDataBase;Integrated Security = True;

 

三、.NET Framework Data Provider for OLE DB

类型:.NET Framework Wrapper Class Library
使用:System.Data.OleDb.OleDbConnection
厂商:Microsoft


桥接到SQL Native Client OLE DB

Provider = SQLNCLI10;Server = myServerAddress;Database = myDataBase;Uid = myUsername; Pwd = myPassword;


四、SQL Server Native Client 10.0 ODBC Driver

类型:ODBC Driver
使用:Driver={SQL Server Native Client 10.0}
厂商:Microsoft


标准安全连接

Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Uid = myUsername;Pwd = myPassword;

 

信任连接

Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Trusted_Connection = yes;

 

连接一个SQL Server实例

Driver = {SQL Server Native Client 10.0};Server = myServerName\theInstanceName; 
Database = myDataBase;Trusted_Connection = yes;


用户名、密码提示

oConn.Properties("Prompt") = adPromptAlways
Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;

 

开启MARS功能 (multiple active result sets)

Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase;Trusted_Connection = yes; 
MARS_Connection = yes;

 

加密模式

Driver = {SQL Server Native Client 10.0};Server = myServerAddress;Database = myDataBase; 
Trusted_Connection = yes;Encrypt = yes;

 

在连接到SQL Server Express实例时附加一个数据库文件

Driver = {SQL Server Native Client 10.0};Server = .\SQLExpress; AttachDbFilename = c:\asd\qwe\mydbfile.mdf; 
Database = dbname;Trusted_Connection = Yes;

 

在连接到SQL Server Express实例时,从数据目录下附加一个数据库文件

Driver={SQL Server Native Client 10.0};Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf; 
Database=dbname;Trusted_Connection=Yes;

 

数据库镜像

Driver = {SQL Server Native Client 
10.0};Server = myServerAddress;Failover_Partner = myMirrorServerAddress;Database = myDataBase; Trusted_Connection = yes;

 

五、.NET Framework Data Provider for ODBC

类型:.NET Framework Wrapper Class Library
使用:System.Data.Odbc.OdbcConnection
厂商:Microsoft


桥接到SQL Native Client 10.0 ODBC Driver

下面的语句只是一条例子,不同厂商的ODBC驱动不同。

Driver={SQL Server Native Client 10.0};Server=myServerAddress;Database=myDataBase;Uid=myUsername;Pwd=myPassword;

 

六、SQLXML 4.0 OLEDB Provider

类型:OLE DB Provider
使用:Provider=SQLXMLOLEDB.4.0;Data Provider=providername
厂商:Microsoft

 

Provider=SQLXMLOLEDB.4.0;Data Provider=SQLNCLI10;Data Source=myServerAddress;Initial Catalog=myDataBase;User 
Id=myUsername;Password=myPassword;


七、Context Connection

类型:.NET Framework Class Library
使用: 
厂商:Microsoft 

通过当前CLR里的存储过程/函数来连接到“自身”。上下文连接可以让你,在你的代码第一次被调用的地方所在的上下文(连接)里,执行T-SQL语句。

using(SqlConnection connection = new SqlConnection("context connection=true"))
{
    connection.Open();
    // Use the connection
}

VB.Net

Using connection as new SqlConnection("context connection=true")
    connection.Open()
    ' Use the connection
End Using


<think>我们正在处理用户关于SQL中判断字段不为空的语法问题。根据引用[4]:SQL判断某字段为空显示另一个字段否则显示此字段。其中提到如果expression为空则显示alt_value的值,如果不为空则显示expression自己。但用户的问题是如何表示不为空的条件,而不是显示另一个字段。另外,引用[2]中提到了在SQL Server中判断字段是否存在的方法,但用户的问题是关于字段值不为空的条件。在SQL中,判断一个字段不为空通常使用`IS NOTNULL`条件。例如:SELECT* FROM表名WHERE字段名IS NOTNULL;同时,注意空字符串和NULL的区别。如果字段允许空字符串('')且用户也想排除空字符串,那么可能需要额外的条件:SELECT* FROM表名 WHERE字段名 ISNOT NULLAND字段名<> '';但是,用户的问题只提到了“不为空”,通常指的是非NULL。因此,主要使用`ISNOT NULL`。根据不同的数据库系统,处理方式可能略有不同,但`IS NOTNULL`是标准的SQL语法。因此,回答如下:</think>在 SQL 中判断字段不为空的语法主要使用 `IS NOT NULL` 运算符。以下是标准用法和注意事项: ### 标准语法 ```sql SELECT * FROM 表名 WHERE 字段名 IS NOT NULL; ``` ### 关键说明 1. **`IS NOT NULL` 是标准操作符** 用于直接判断字段值是否为非空状态(区别于空字符串或0值) ```sql -- 示例:查询员工表中电话号码非空的记录 SELECT * FROM employees WHERE phone_number IS NOT NULL; ``` 2. **与空字符串的区别** NULL 表示无数据,空字符串 `''` 是有效值。需分别处理: ```sql -- 同时排除NULL和空字符串 SELECT * FROM users WHERE address IS NOT NULL AND address <> ''; ``` 3. **函数处理(跨数据库通用)** 使用 `COALESCE()` 或 `NULLIF()` 处理空值: ```sql -- 若description为空则显示'无描述' SELECT COALESCE(description, '无描述') AS desc_info FROM products; -- 排除空值转换结果 SELECT * FROM orders WHERE NULLIF(customer_note, '') IS NOT NULL; ``` ### 不同数据库的注意事项 | 数据库 | 特殊语法 | 示例 | |--------------|------------------------------|-------------------------------------------| | **SQL Server** | `ISNULL()` 函数 | `WHERE ISNULL(field, '') <> ''` | | **Oracle** | `NVL()` 函数 | `WHERE NVL(field, 'N/A') != 'N/A'` | | **MySQL** | `IFNULL()` 函数 | `WHERE IFNULL(field, 0) != 0` | > **重要提示**:`!= NULL` 或 `<> NULL` 的写法始终返回空结果集,必须使用 `IS NOT NULL`[^4]。 ### 实际应用场景 ```sql -- 场景:更新用户表,将空邮箱替换为备用联系人 UPDATE users SET contact_email = COALESCE(email, secondary_email) WHERE email IS NOT NULL OR secondary_email IS NOT NULL; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值