将连接字符串关键字用于 SQL Server Native Client
适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)
重要
已从 SQL Server 2022 (16.x) 和 SQL Server Management Studio 19 (SSMS) 中删除SQL Server Native Client(通常缩写为 SNAC)。 不建议在新应用程序开发工作中使用 SQL Server Native Client(SQLNCLI 或 SQLNCLI11)和旧版 Microsoft OLE DB Provider for SQL Server (SQLOLEDB)。 请在此后切换为使用新版 Microsoft OLE DB Driver (MSOLEDBSQL) for SQL Server 或最新版的 Microsoft OLE DB Driver for SQL Server。 对于作为 SQL Server 数据库引擎组件随附的 SQLNCLI (版本 2012 到 2019) ,请参阅此支持生命周期异常。
某些SQL Server Native Client API 使用连接字符串来指定连接属性。 连接字符串是关键字和关联的值的列表;每个关键字标识特定的连接属性。
有关信息,请参阅将连接字符串关键字用于OLE DB Driver for SQL Server。
注意
SQL Server Native Client允许连接字符串中的不明确性来保持向后兼容性 (例如,某些关键字可能多次指定,并且可能会根据位置或优先级) 通过解析允许冲突关键字。 修改应用程序以使用 SQL Server Native Client 以消除对连接字符串多义性的任何依赖时,这是一种很好的做法。
以下部分介绍在使用 SQL Server Native Client 作为数据访问接口时,可与 SQL Server Native Client OLE DB 访问接口、SQL Server Native Client ODBC 驱动程序和 ActiveX 数据对象一起使用的关键字 (ADO) 。
ODBC 驱动程序连接字符串关键字
ODBC 应用程序使用连接字符串作为 SQLDriverConnect 和 SQLBrowseConnect 函数的参数。
ODBC 使用的连接字符串有以下语法:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=[{]attribute-value[}]
attribute-value ::= character-string
attribute-keyword ::= identifier
属性值可以选择放在大括号中,并且最好这样做。 这样可以避免当属性值包含非字母数字字符时出现问题。 值中的第一个右大括号用于终止值,因此值不能包含右大括号。
下表对可能与 ODBC 连接字符串一起使用的关键字进行了说明。
关键字 | 说明 |
---|---|
Addr | “Address”的同义词。 |
Address | 运行 SQL Server 实例的服务器的网络地址。 “Address”通常是服务器的网络名称,也可以是诸如管道、IP 地址或 TCP/IP 端口和套接字地址之类的其他名称 。 如果指定了 IP 地址,请确保在 SQL Server 配置管理器中启用了 TCP/IP 或 named pipes 协议。 使用 SQL Server Native Client 时,Address 的值优先于在 ODBC 连接字符串中传递给 Server 的值。 另外请注意, Address=; 将连接到在 Server 关键字中指定的服务器,而 Address= ;, Address=.; 、 Address=localhost; 和 Address=(local); 都会产生本地服务器的连接 。Address 关键字的完整语法如下所示 : [protocol:]Address[,port |\pipe\pipename] protocol 可以是 tcp (TCP/IP)、 lpc (共享内存)或 np (命名管道)。 有关协议的详细信息,请参阅配置客户端协议。 如果未指定协议和网络关键字 (keyword) ,SQL Server Native Client将使用SQL Server 配置管理器中指定的协议顺序。 “port”是指定服务器上所要连接到的端口 。 默认情况下,SQL Server 使用端口 1433。 |
AnsiNPW | 如果是“yes”,则驱动程序使用 ANSI 定义的行为来处理 NULL 比较、字符数据填充、警告和 NULL 串联。 如果是“no”,则不公开 ANSI 定义的行为。 有关 ANSI NPW 行为的详细信息,请参阅 ISO 选项的效果。 |
APP | 调用 SQLDriverConnect 的应用程序的名称 (可选) 。 如果指定,此值将存储在 master.dbo.sysprocesses列program_name 中,并由 sp_who 和 APP_NAME 函数返回。 |
ApplicationIntent | 连接到服务器时声明应用程序工作负荷类型。 可能的值为 ReadOnly 和 ReadWrite 。 默认值为 ReadWrite 。 例如:ApplicationIntent=ReadOnly 有关SQL Server Native Client对Always On可用性组的支持的详细信息,请参阅SQL Server Native Client高可用性和灾难恢复支持。 |
AttachDBFileName | 可附加数据库的主文件的名称。 如果使用 C 字符串变量,请包括完整路径,并将所有 \ 字符转义:AttachDBFileName=c:\\MyFolder\\MyDB.mdf 附加此数据库并使其成为连接的默认数据库。 若要使用 AttachDBFileName ,还必须在 SQLDriverConnect DATABASE 参数或 SQL_COPT_CURRENT_CATALOG 连接属性中指定数据库名称。 如果以前附加了数据库,SQL Server不会重新附加它;它使用附加的数据库作为连接的默认数据库。 |
AutoTranslate | 如果是“yes”,则客户端和服务器之间发送的 ANSI 字符串将通过 Unicode 进行转换,以使在客户端与服务器的代码页之间匹配扩展字符的问题最小化。 发送到 SQL Server char、varchar 或文本变量、参数或列的客户端SQL_C_CHAR数据使用客户端 ANSI 代码页 (ACP) 从字符转换为 Unicode,然后使用服务器的 ACP 从 Unicode 转换为字符。 发送到客户端的SQL Server char、varchar 或文本数据SQL_C_CHAR变量使用服务器 ACP 从字符转换为 Unicode,然后使用客户端 ACP 从 Unicode 转换为字符。 这些转换由 SQL Server Native Client ODBC 驱动程序在客户端上执行。 这要求在服务器上使用的相同 ANSI 代码页 (ACP) 在客户端上可用。 这些设置对于为下面这些传输而发生的转换无效: * Unicode SQL_C_WCHAR发送到服务器上的 char、 varchar 或 文本 的客户端数据。 * char、 varchar 或发送到客户端上的 Unicode SQL_C_WCHAR变量 的文本 服务器数据。 * ANSI SQL_C_CHAR发送到服务器上的 Unicode nchar、 nvarchar 或 ntext 的客户端数据。 * 发送到客户端上的 ANSI SQL_C_CHAR变量的 Unicode nchar、 nvarchar 或 ntext 服务器数据。 如果是“no”,则不执行字符转换。 SQL Server Native Client ODBC 驱动程序不会将客户端 ANSI 字符SQL_C_CHAR发送到服务器上的 char、varchar 或文本变量、参数或列的数据进行转换。 不会对从服务器发送到 的 char、 varchar 或 文本 数据执行转换,SQL_C_CHAR客户端上的变量。 如果客户端和SQL Server使用不同的 ACP,则扩展字符可能会被错误解释。 |
Database | 连接的默认SQL Server数据库的名称。 如果未指定 Database ,则使用为登录名定义的默认数据库。 来自 ODBC 数据源的默认数据库将覆盖为登录定义的默认数据库。 除非还指定 了 AttachDBFileName ,否则该数据库必须是现有数据库。 如果还指定了 AttachDBFileName ,则会附加它指向的主文件,并指定 由 Database 指定的数据库名称。 |
驱动程序 | SQLDrivers 返回的驱动程序的名称。 SQL Server Native Client ODBC 驱动程序的关键字 (keyword) 值为“{SQL Server Native Client 11.0}”。 如果指定了Driver 并且 DriverCompletion 设置为 SQL_DRIVER_NOPROMPT,则服务器关键字 (keyword) 是必需的。 有关驱动程序名称的详细信息,请参阅使用 SQL Server Native Client 头文件和库文件。 |
DSN | 现有 ODBC 用户或系统数据源的名称。 此关键字 (keyword) 替代可能在 Server、Network 和 Address 关键字中指定的任何值。 |
Encrypt | 指定在通过网络发送数据之前是否应当将其加密。 可能的值为“yes”/“mandatory” (18.0+) 、“no”/“optional” (18.0+) 和“strict” (18.0+) 。 在版本 18.0 及更高版本中,默认值为“yes”,在早期版本中为“no”。 |
回退 | 此关键字 (keyword) 已弃用,SQL Server Native Client ODBC 驱动程序会忽略其设置。 |
Failover_Partner | 不能与主服务器建立连接时要使用的故障转移伙伴服务器的名称。 |
FailoverPartnerSPN | 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用默认的驱动程序生成的 SPN。 |
FileDSN | 现有 ODBC 文件数据源的名称。 |
语言 | SQL Server语言名称 (可选) 。 SQL Server可以在 sysmessages 中存储多种语言的消息。 如果使用多种语言连接到SQL Server,则 Language 指定用于连接的消息集。 |
MARS_Connection | 启用或禁用连接上的多个活动结果集 (MARS)。 可识别的值为“yes”和“no”。 默认值为“no”。 |
MultiSubnetFailover | 连接到SQL Server可用性组或SQL Server故障转移群集实例的可用性组侦听器时,始终指定 multiSubnetFailover=Yes。 multiSubnetFailover=Yes 配置SQL Server Native Client,以更快地检测当前) 活动服务器的 (并建立连接。 可能的值为“是”和“否”。 默认值为 No。 例如:MultiSubnetFailover=Yes 有关SQL Server Native Client对Always On可用性组的支持的详细信息,请参阅SQL Server Native Client高可用性和灾难恢复支持。 |
Net | “Network”的同义词。 |
Network | 有效值为 dbnmpntw (命名管道) 和 dbmssocn (TCP/IP) 。 在服务器关键字 (keyword) 上指定网络关键字 (keyword) 的值和协议前缀是错误的。 |
PWD | UID 参数中指定的SQL Server登录帐户的密码。 如果登录名具有 NULL 密码或使用 Windows 身份验证 () Trusted_Connection = yes ,则无需指定 PWD。 |
QueryLog_On | 如果是“yes”,则在连接上启用对长时间运行的查询数据的日志记录。 如果是“no”,则不记录长时间运行的查询数据。 |
QueryLogFile | 文件的完整路径和文件名,该文件用于记录长时间运行的查询上的数据。 |
QueryLogTime | 数字字符串,指定记录长时间运行的查询的阈值(毫秒)。 未在指定时间内获得响应的任何查询将写入长时间运行查询日志文件。 |
QuotedId | 如果为“是”,则QUOTED_IDENTIFIERS设置为 ON,SQL Server使用有关在 SQL 语句中使用引号的 ISO 规则。 如果是“no”,则 QUOTED_IDENTIFIERS 对连接设置为 OFF。 然后,SQL Server遵循有关在 SQL 语句中使用引号的旧式 Transact-SQL 规则。 有关详细信息,请参阅 ISO 选项的效果。 |
Regional | 如果“是”,SQL Server Native Client ODBC 驱动程序在将货币、日期和时间数据转换为字符数据时使用客户端设置。 该转换是单向的;驱动程序不会识别其中非 ODBC 标准格式的日期字符串或货币值;例如,在 INSERT 或 UPDATE 语句中使用的参数。 如果是“no”,则驱动程序使用 ODBC 标准字符串来表示转换为字符数据的货币、日期和时间数据。 |
SaveFile | 如果连接成功则在其中保存当前连接的属性的 ODBC 数据源文件的名称。 |
服务器 | SQL Server 实例的名称。 该值必须是服务器的网络名称、IP 地址或者 SQL Server 配置管理器别名。 “Address” 关键字将替代“Server” 关键字。 通过指定以下条件之一,可连接到本地服务器的默认实例: Server=; Server=.; Server=(local); Server=(local); Server=(localhost); Server=(localdb)\instancename; 有关 LocalDB 支持的详细信息,请参阅SQL Server Native Client对 LocalDB 的支持。 若要指定的命名的实例SQL Server,将追加 \InstanceName。 如果不指定服务器,则与本地计算机上的默认实例建立连接。 如果指定了 IP 地址,请确保在 SQL Server 配置管理器中启用了 TCP/IP 或 named pipes 协议。 Server 关键字的完整语法如下: Server= [protocol: ]Server[ ,port] protocol 可以是 tcp (TCP/IP)、 lpc (共享内存)或 np (命名管道)。 以下示例将指定一个命名管道: np:\\.\pipe\MSSQL$MYINST01\sql\query 此行指定命名管道协议、本地计算机上的命名管道 () \\.\pipe 、SQL Server实例的名称 (MSSQL$MYINST01 ) ,以及命名管道的默认名称 (sql/query ) 。如果未指定协议和网络关键字 (keyword) ,SQL Server Native Client将使用SQL Server 配置管理器中指定的协议顺序。 “port”是指定服务器上所要连接到的端口 。 默认情况下,SQL Server 使用端口 1433。 使用 SQL Server Native Client 时,在 ODBC 连接字符串中传递给服务器的值的开头忽略空格。 |
ServerSPN | 服务器的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用默认的驱动程序生成的 SPN。 |
StatsLog_On | 如果“是”,则启用SQL Server Native Client ODBC 驱动程序性能数据的捕获。 如果“否”,SQL Server Native Client ODBC 驱动程序性能数据在连接上不可用。 |
StatsLogFile | 用于记录 ODBC 驱动程序性能统计信息SQL Server Native Client文件的完整路径和文件名。 |
Trusted_Connection | 如果为“是”,则指示SQL Server Native Client ODBC 驱动程序使用 Windows 身份验证模式进行登录验证。 否则,指示 SQL Server Native Client ODBC 驱动程序使用SQL Server用户名和密码进行登录验证,并且必须指定 UID 和 PWD 关键字。 |
TrustServerCertificate | 与 Encrypt 一起使用时,使用自签名服务器证书启用加密。 |
UID | 有效的SQL Server登录帐户。 使用 Windows 身份验证时,不需要指定 UID。 |
UseProcForPrepare | 此关键字 (keyword) 已弃用,SQL Server Native Client ODBC 驱动程序会忽略其设置。 |
WSID | 工作站 ID。 通常,这是应用程序驻留于其上的计算机的网络名称(可选)。 如果指定,此值将存储在 master.dbo.sysprocesses 列 主机名 中,并由 sp_who 和 HOST_NAME 函数返回。 |
注意
区域转换设置应用于货币、数字、日期和时间数据类型。 转换设置仅应用于输出转换,并仅在货币、数字、日期或时间值转换为字符串时可见。
SQL Server Native Client ODBC 驱动程序使用当前用户的区域设置注册表设置。 如果应用程序在连接后设置当前线程的区域设置(例如,调用 SetThreadLocale),则驱动程序将不遵循当前线程的区域设置。
改变数据源的区域行为可能导致应用程序失败。 对于那些分析日期字符串并期望日期字符串按 ODBC 定义的方式显示的应用程序来说,改变该值可能对它们有负面影响。
OLE DB 访问接口连接字符串关键字
OLE DB 应用程序可以用两种方式初始化数据源对象:
IDBInitialize::Initialize
IDataInitialize::GetDataSource
在第一种情况下,通过在 DBPROPSET_DBINIT 属性集中设置属性 DBPROP_INIT_PROVIDERSTRING,可以用访问接口字符串初始化连接属性。 在第二种情况下,可以将初始化字符串传递到 IDataInitialize::GetDataSource 方法以初始化连接属性 。 两种方法都初始化相同的 OLE DB 连接属性,但使用不同的关键字集合。 IDataInitialize::GetDataSource 所使用的关键字集合至少是初始化属性组内的属性的说明 。
将对应的 OLE DB 属性设置为某个默认值或显式设置为某个值的任何提供程序字符串设置,OLE DB 属性值将覆盖提供程序字符串中的设置。
通过 DBPROP_INIT_PROVIDERSTRING 值在访问接口字符串中所设置的布尔属性要使用值“yes”和“no”进行设置。 通过使用 IDataInitialize::GetDataSource 在初始化字符串中设置的布尔属性是使用值“true”和“false”进行设置的。
使用 IDataInitialize::GetDataSource 的应用程序也可以使用 IDBInitialize::Initialize 使用的关键字,但仅适用于没有默认值的属性。 如果应用程序在初始化字符串中同时使用 IDataInitialize::GetDataSource 关键字和 IDBInitialize::Initialize 关键字,则使用 IDataInitialize::GetDataSource 关键字设置 。 强烈建议应用程序不要在 IDataInitialize:GetDataSource 连接字符串中使用 IDBInitialize::Initialize 关键字,因为在未来的版本中可能不保留该行为。
注意
通过 IDataInitialize::GetDataSource 传递的连接字符串将转换为属性并且通过 IDBProperties::SetProperties 应用 。 如果组件服务在 IDBProperties::GetPropertyInfo 中找到了属性说明,则此属性将作为独立属性应用 。 否则,它将通过 DBPROP_PROVIDERSTRING 属性应用。 例如,如果指定连接字符串“Data Source=server1;Server=server2”,则“数据源”将被设置为属性,但“Server”将进入提供程序字符串。
如果指定访问接口特定的属性相同的多个实例,则使用第一个属性的第一个值。
将 IDBInitialize::Initialize 和 DBPROP_INIT_PROVIDERSTRING 配合使用的 OLE DB 应用程序所使用的连接字符串具有以下语法 :
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=[{]attribute-value[}]
attribute-value ::= character-string
attribute-keyword ::= identifier
属性值可以选择放在大括号中,并且最好这样做。 这样可以避免当属性值包含非字母数字字符时出现问题。 值中的第一个右大括号用于终止值,因此值不能包含右大括号。
连接字符串关键字的等号 (=) 之后的空白字符将被解释为文本,即使该值在引号内也是如此。
下表对可能与 DBPROP_INIT_PROVIDERSTRING 一起使用的关键字进行了说明。
关键字 | 初始化属性 | 说明 |
---|---|---|
Addr | SSPROP_INIT_NETWORKADDRESS | “Address”的同义词。 |
Address | SSPROP_INIT_NETWORKADDRESS | 组织中的 SQL Server 实例的网络地址。 有关有效地址语法的详细信息,请参阅本主题后面的 Address ODBC 关键字 (keyword) 的说明。 |
APP | SSPROP_INIT_APPNAME | 用于标识应用程序的字符串。 |
ApplicationIntent | SSPROP_INIT_APPLICATIONINTENT | 连接到服务器时声明应用程序工作负荷类型。 可能的值为 ReadOnly 和 ReadWrite 。 默认值为 ReadWrite 。 有关SQL Server Native Client对Always On可用性组的支持的详细信息,请参阅SQL Server Native Client高可用性和灾难恢复支持。 |
AttachDBFileName | SSPROP_INIT_FILENAME | 可附加数据库的主文件的名称(包括完整路径名)。 若要使用 AttachDBFileName,还必须使用访问接口字符串 Database 关键字来指定数据库名称 。 如果该数据库以前已经附加,则 SQL Server 不会重新附加它(而是使用已附加的数据库作为连接的默认数据库)。 |
自动翻译 | SSPROP_INIT_AUTOTRANSLATE | “AutoTranslate”的同义词。 |
AutoTranslate | SSPROP_INIT_AUTOTRANSLATE | 配置 OEM/ANSI 字符转换。 可识别的值为“yes”和“no”。 |
Database | DBPROP_INIT_CATALOG | 数据库名称。 |
DataTypeCompatibility | SSPROP_INIT_DATATYPECOMPATIBILITY | 指定要使用的数据类型的处理模式。 对于访问接口数据类型,可识别的值为“0”,对于 SQL Server 2000 数据类型则为“80”。 |
Encrypt | SSPROP_INIT_ENCRYPT | 指定在通过网络发送数据之前是否应当将其加密。 可能的值为“yes”和“no”。 默认值为“no”。 |
FailoverPartner | SSPROP_INIT_FAILOVERPARTNER | 用于数据库镜像的故障转移服务器的名称。 |
FailoverPartnerSPN | SSPROP_INIT_FAILOVERPARTNERSPN | 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用提供程序生成的默认 SPN。 |
语言 | SSPROP_INIT_CURRENTLANGUAGE | SQL Server 语言。 |
MarsConn | SSPROP_INIT_MARSCONNECTION | 如果服务器是 SQL Server 2005 (9.x) 或更高版本,则启用或禁用连接上的多个活动结果集 (MARS)。 可能的值为“yes”和“no”。 默认值为“no”。 |
Net | SSPROP_INIT_NETWORKLIBRARY | “Network”的同义词。 |
Network | SSPROP_INIT_NETWORKLIBRARY | 用于与组织中的 SQL Server 实例建立连接的网络库。 |
Network Library | SSPROP_INIT_NETWORKLIBRARY | “Network”的同义词。 |
PacketSize | SSPROP_INIT_PACKETSIZE | 网络数据包大小。 默认值为 4096。 |
PersistSensitive | DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO | 接受字符串“yes”和“no”作为值。 如果是“no”,则不允许数据源对象保留敏感的身份验证信息。 |
PWD | DBPROP_AUTH_PASSWORD | SQL Server 登录密码。 |
Server | DBPROP_INIT_DATASOURCE | 组织中的 SQL Server 实例的名称。 如果不指定,则与本地计算机上的默认实例建立连接。 有关有效地址语法的详细信息,请参阅本主题中的服务器 ODBC 关键字 (keyword) 的说明。 |
ServerSPN | SSPROP_INIT_SERVERSPN | 服务器的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用提供程序生成的默认 SPN。 |
超时 | DBPROP_INIT_TIMEOUT | 等待数据源初始化完成的时间(秒)。 |
Trusted_Connection | DBPROP_AUTH_INTEGRATED | 如果“是”,则指示SQL Server Native Client OLE DB 提供程序使用 Windows 身份验证模式进行登录验证。 否则,指示SQL Server Native Client OLE DB 提供程序使用SQL Server用户名和密码进行登录验证,并且必须指定 UID 和 PWD 关键字。 |
TrustServerCertificate | SSPROP_INIT_TRUST_SERVER_CERTIFICATE | 接受字符串“yes”和“no”作为值。 默认值为“no”,它意味着将验证服务器证书。 |
UID | DBPROP_AUTH_USERID | SQL Server 登录名。 |
UseProcForPrepare | SSPROP_INIT_USEPROCFORPREP | 此关键字 (keyword) 已弃用,SQL Server Native Client OLE DB 提供程序会忽略其设置。 |
WSID | SSPROP_INIT_WSID | 工作站标识符。 |
使用 IDataInitialize::GetDataSource 的 OLE DB 应用程序所使用的连接字符串有以下语法 :
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=[quote]attribute-value[quote]
attribute-value ::= character-string
attribute-keyword ::= identifier
quote ::= " | '
属性使用必须符合其作用域中允许的语法。 例如,WSID 使用大括号 ({}) 引号字符,而应用程序名称使用单引号字符 (') 或双引号字符 (")。 只有字符串属性可以加引号。 尝试将整数或枚举属性用引号引起来将导致“连接字符串不符合 OLE DB 规范”错误。
属性值可以选择放在单引号或双引号内,并且最好这样做。 这样可以避免当值包含非字母数字字符时出现问题。 也可以在值内使用引号字符,只要使用的是双引号。
连接字符串关键字的等号 (=) 之后的空白字符将被解释为文本,即使该值在引号内也是如此。
如果某一连接字符串具有下表所列的多个属性,将使用最后一个属性的值。
下表对可能与 IDataInitialize::GetDataSource 配合使用的关键字进行了说明 :
关键字 | 初始化属性 | 说明 |
---|---|---|
应用程序名称 | SSPROP_INIT_APPNAME | 用于标识应用程序的字符串。 |
Application Intent | SSPROP_INIT_APPLICATIONINTENT | “ApplicationIntent”的同义词。 |
ApplicationIntent | SSPROP_INIT_APPLICATIONINTENT | 连接到服务器时声明应用程序工作负荷类型。 可能的值为 ReadOnly 和 ReadWrite 。 默认值为 ReadWrite 。 有关SQL Server Native Client对Always On可用性组的支持的详细信息,请参阅SQL Server Native Client高可用性和灾难恢复支持。 |
自动翻译 | SSPROP_INIT_AUTOTRANSLATE | “AutoTranslate”的同义词。 |
AutoTranslate | SSPROP_INIT_AUTOTRANSLATE | 配置 OEM/ANSI 字符转换。 可识别的值为“true”和“false”。 |
Connect Timeout | DBPROP_INIT_TIMEOUT | 等待数据源初始化完成的时间(秒)。 |
Current Language | SSPROP_INIT_CURRENTLANGUAGE | SQL Server 语言名称。 |
数据源 | DBPROP_INIT_DATASOURCE | 组织中的 SQL Server 实例的名称。 如果不指定,则与本地计算机上的默认实例建立连接。 有关有效地址语法的详细信息,请参阅本主题后面的服务器 ODBC 关键字 (keyword) 的说明。 |
DataTypeCompatibility | SSPROP_INIT_DATATYPECOMPATIBILITY | 指定要使用的数据类型的处理模式。 提供程序数据类型的识别值为“0”,对于SQL Server 2000 (8.x) 数据类型,可识别的值为“80”。 |
Failover Partner | SSPROP_INIT_FAILOVERPARTNER | 用于数据库镜像的故障转移服务器的名称。 |
Failover Partner SPN | SSPROP_INIT_FAILOVERPARTNERSPN | 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用提供程序生成的默认 SPN。 |
初始目录 | DBPROP_INIT_CATALOG | 数据库名称。 |
初始文件名 | SSPROP_INIT_FILENAME | 可附加数据库的主文件的名称(包括完整路径名)。 若要使用 AttachDBFileName,还必须使用访问接口字符串 DATABASE 关键字来指定数据库名称 。 如果该数据库以前已经附加,则 SQL Server 不会重新附加它(而是使用已附加的数据库作为连接的默认数据库)。 |
Integrated Security | DBPROP_AUTH_INTEGRATED | 接受 Windows 身份验证的值“SSPI”。 |
MARS Connection | SSPROP_INIT_MARSCONNECTION | 启用或禁用连接上的多个活动结果集 (MARS)。 可识别的值为“true”和“false”。 默认值为“false”。 |
Network Address | SSPROP_INIT_NETWORKADDRESS | 组织中的 SQL Server 实例的网络地址。 有关有效地址语法的详细信息,请参阅本主题后面的 Address ODBC 关键字 (keyword) 的说明。 |
Network Library | SSPROP_INIT_NETWORKLIBRARY | 用于与组织中的 SQL Server 实例建立连接的网络库。 |
Packet Size | SSPROP_INIT_PACKETSIZE | 网络数据包大小。 默认值为 4096。 |
密码 | DBPROP_AUTH_PASSWORD | SQL Server 登录密码。 |
Persist Security Info | DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO | 接受字符串“true”和“false”作为值。 如果是“false”,则不允许数据源对象保留敏感的身份验证信息 |
提供程序 | 对于SQL Server Native Client,应为“SQLNCLI11”。 | |
Server SPN | SSPROP_INIT_SERVERSPN | 服务器的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用提供程序生成的默认 SPN。 |
信任服务器证书 | SSPROP_INIT_TRUST_SERVER_CERTIFICATE | 接受字符串“true”和“false”作为值。 默认值为“false”,它意味着将验证服务器证书。 |
Use Encryption for Data | SSPROP_INIT_ENCRYPT | 指定在通过网络发送数据之前是否应当将其加密。 可能的值为“true”和“false”。 默认值为“false”。 |
用户 ID | DBPROP_AUTH_USERID | SQL Server 登录名。 |
Workstation ID | SSPROP_INIT_WSID | 工作站标识符。 |
注意:在连接字符串中,“旧密码”属性会设置 SSPROP_AUTH_OLD_PASSWORD,它是当前密码(可能已过期),通过访问接口字符串属性无法获取该密码。
ActiveX 数据对象 (ADO) 连接字符串关键字
ADO 应用程序设置 ADODBConnection 对象的 ConnectionString 属性,或提供连接字符串作为 ADODBConnection 对象的 Open 方法的参数 。
ADO 应用程序还可以使用由 OLE DB IDBInitialize::Initialize 方法使用的关键字,但仅针对没有默认值的属性 。 如果应用程序在初始化字符串中同时使用这些 ADO 关键字和 IDBInitialize::Initialize 关键字,则使用 ADO 关键字设置 。 强烈建议应用程序仅使用 ADO 连接字符串关键字。
ADO 使用的连接字符串有以下语法:
connection-string ::= empty-string[;] | attribute[;] | attribute; connection-string
empty-string ::=
attribute ::= attribute-keyword=["]attribute-value["]
attribute-value ::= character-string
attribute-keyword ::= identifier
属性值可以选择放在双引号中,并且最好这样做。 这样可以避免当值包含非字母数字字符时出现问题。 属性值不能包含双引号。
下表对可能与 ADO 连接字符串一起使用的关键字进行了说明:
关键字 | 初始化属性 | 说明 |
---|---|---|
Application Intent | SSPROP_INIT_APPLICATIONINTENT | “ApplicationIntent”的同义词。 |
ApplicationIntent | SSPROP_INIT_APPLICATIONINTENT | 连接到服务器时声明应用程序工作负荷类型。 可能的值为 ReadOnly 和 ReadWrite 。 默认值为 ReadWrite 。 有关SQL Server Native Client对Always On可用性组的支持的详细信息,请参阅SQL Server Native Client高可用性和灾难恢复支持。 |
应用程序名称 | SSPROP_INIT_APPNAME | 用于标识应用程序的字符串。 |
自动翻译 | SSPROP_INIT_AUTOTRANSLATE | “AutoTranslate”的同义词。 |
AutoTranslate | SSPROP_INIT_AUTOTRANSLATE | 配置 OEM/ANSI 字符转换。 可识别的值为“true”和“false”。 |
Connect Timeout | DBPROP_INIT_TIMEOUT | 等待数据源初始化完成的时间(秒)。 |
Current Language | SSPROP_INIT_CURRENTLANGUAGE | SQL Server 语言名称。 |
数据源 | DBPROP_INIT_DATASOURCE | 组织中的 SQL Server 实例的名称。 如果不指定,则与本地计算机上的默认实例建立连接。 有关有效地址语法的详细信息,请参阅本主题中的服务器 ODBC 关键字 (keyword) 的说明。 |
DataTypeCompatibility | SSPROP_INIT_DATATYPECOMPATIBILITY | 指定将使用的数据类型的处理模式。 对于访问接口数据类型,可识别的值为“0”,对于 SQL Server 2000 数据类型则为“80”。 |
Failover Partner | SSPROP_INIT_FAILOVERPARTNER | 用于数据库镜像的故障转移服务器的名称。 |
Failover Partner SPN | SSPROP_INIT_FAILOVERPARTNERSPN | 故障转移伙伴的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用提供程序生成的默认 SPN。 |
初始目录 | DBPROP_INIT_CATALOG | 数据库名称。 |
初始文件名 | SSPROP_INIT_FILENAME | 可附加数据库的主文件的名称(包括完整路径名)。 若要使用 AttachDBFileName,还必须使用访问接口字符串 DATABASE 关键字来指定数据库名称 。 如果该数据库以前已经附加,则 SQL Server 不会重新附加它(而是使用已附加的数据库作为连接的默认数据库)。 |
Integrated Security | DBPROP_AUTH_INTEGRATED | 接受 Windows 身份验证的值“SSPI”。 |
MARS Connection | SSPROP_INIT_MARSCONNECTION | 如果服务器是 SQL Server 2005 (9.x) 或更高版本,则启用或禁用连接上的多个活动结果集 (MARS)。 可识别的值为“true”和“false”。默认值为“false”。 |
Network Address | SSPROP_INIT_NETWORKADDRESS | 组织中的 SQL Server 实例的网络地址。 有关有效地址语法的详细信息,请参阅本主题中的 Address ODBC 关键字 (keyword) 的说明。 |
Network Library | SSPROP_INIT_NETWORKLIBRARY | 用于与组织中的 SQL Server 实例建立连接的网络库。 |
Packet Size | SSPROP_INIT_PACKETSIZE | 网络数据包大小。 默认值为 4096。 |
密码 | DBPROP_AUTH_PASSWORD | SQL Server 登录密码。 |
Persist Security Info | DBPROP_AUTH_PERSIST_SENSITIVE_AUTHINFO | 接受字符串“true”和“false”作为值。 如果是“false”,则不允许数据源对象保留敏感的身份验证信息。 |
提供程序 | 对于SQL Server Native Client,应为“SQLNCLI11”。 | |
Server SPN | SSPROP_INIT_SERVERSPN | 服务器的 SPN。 默认值为空字符串。 空字符串导致SQL Server Native Client使用提供程序生成的默认 SPN。 |
信任服务器证书 | SSPROP_INIT_TRUST_SERVER_CERTIFICATE | 接受字符串“true”和“false”作为值。 默认值为“false”,它意味着将验证服务器证书。 |
Use Encryption for Data | SSPROP_INIT_ENCRYPT | 指定在通过网络发送数据之前是否应当将其加密。 可能的值为“true”和“false”。 默认值为“false”。 |
用户 ID | DBPROP_AUTH_USERID | SQL Server 登录名。 |
Workstation ID | SSPROP_INIT_WSID | 工作站标识符。 |
注意:在连接字符串中,“旧密码”属性会设置 SSPROP_AUTH_OLD_PASSWORD,它是当前密码(可能已过期),通过访问接口字符串属性无法获取该密码。
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈