CREATE EXTERNAL DATA SOURCE (Transact-SQL) CONNECTION_OPTIONS

本文根据提供程序提供有关 CONNECTION_OPTIONS 的更多详细信息。 CREATE EXTERNAL DATA SOURCE CONNECTION_OPTIONS 参数可能因外部数据提供程序而异。

CREATE EXTERNAL DATA SOURCE 的 CONNECTION_OPTIONS 参数最初是在 SQL Server 2019 (15.x) 中引入的。 本文档适用于 Windows 和 Linux 的 SQL Server 2019 (15.x) 以及 SQL Server 2019 大数据群集。

  • key_value_pair 是特定连接选项的关键字和值。
  • 若要使用多个连接选项,请用分号分隔它们。
  • 可能的键值对特定于驱动程序。

本文的其余部分包含特定于供应商的连接选项。

SQL Server 外部数据源

只能指定在“DSN/连接字符串关键字”列下的 DSN 和连接字符串关键字和属性中具有条目的键值对。 例如,不支持 SQL_ATTR_TXN_ISOLATION 关键字,因为这是使用 SQLSetConnectAttr 设置的属性,而不是在连接字符串中。

Microsoft OLE DB 提供程序的连接字符串关键字和选项:

Microsoft ODBC DB 提供程序的连接字符串关键字和选项:

Oracle

只能指定在 Oracle 线路协议表中具有条目的键值对,如下所示:

属性(短名称) 默认
AccountingInfo (AI)
Action (ACT)
AlternateServers (ASRV)
AllowedOpenSSLVersions (AOV) 最新
ApplicationName (AN)
ApplicationUsingThreads (AUT) 1(启用)
ArraySize (AS) 60000
AuthenticationMethod (AM) 1(加密密码)
BatchFailureReturnsError (BFRE) 0(禁用)
BindParamsAsUnicode (BPAU) 0(禁用)
BulkBinaryThreshold (BBT) 32
BulkCharacterThreshold (BCT) -1
BulkLoadBatchSize (BLBS) 1024
BulkLoadFieldDelimiter (BLFD)
BulkLoadOptions (BLO) 0
BulkLoadRecordDelimiter (BLRD)
CachedCursorLimit (CCL) 32
CachedDescriptionLimit (CDL) 0
CatalogIncludesSynonyms (CIS) 1(启用)
CatalogOptions (CO) 0(禁用)
ClientHostName (CHN)
ClientID (CID)
ClientUser (CU)
ConnectionReset (CR) 0(禁用)
ConnectionRetryCount (CRC) 0
ConnectionRetryDelay (CRD) 3
CredentialsWalletEntry (CWE)
CredentialsWalletPassword (CWPWD)
CredentialsWalletPath (CWPATH)
CryptoProtocolVersion (CPV) TLSv1.2、TLSv1.1、TLSv1
CryptoLibName (CLN) 空字符串
DataIntegrityLevel (DIL) 1(已接受)
DataIntegrityTypes (DIT) MD5、SHA1、SHA256、SHA384、SHA512
DataSourceName (DSN)
DefaultLongDataBuffLen (DLDBL) 1024
DescribeAtPrepare (DAP) 0(禁用)
说明 (n/a)
EditionName (EN)
EnableBulkLoad (EBL) 0(禁用)
EnableDescribeParam (EDP) 0(禁用)
EnableNcharSupport (ENS)(已弃用)
EnableScrollableCursors (ESC) 1(启用)
EnableServerResultCache (ESRC) 0(禁用)
EnableStaticCursorsForLongData (ESCLD) 0(禁用)
EnableTimestampwithTimezone (ETWT)(已弃用)
EncryptionLevel (EL) 1(已接受)
EncryptionMethod (EM) 0(无加密)
EncryptionTypes (ET) 未指定加密方法。 驱动程序将所有加密方法的列表发送到 Oracle 服务器。
FailoverGranularity (FG) 0(非原子)
FailoverMode (FM) 0(连接)
FailoverPreconnect (FP) 0(禁用)
FetchTSWTZasTimestamp (FTSWTZAT) 0(禁用)
GSSClient (GSSC) 本机
HostName (HOST)
HostNameInCertificate (HNIC)
IANAAppCodePage (IACP)(仅限 UNIX 和 Linux) 4 (ISO 8559-1 Latin-1)
ImpersonateUser (IU)
InitializationString (IS)
KeepAlive (KA) 0(禁用)
KeyPassword (KP)
Keystore (KS)
KeystorePassword (KSP)
LDAPDistinguishedName (LDAPDN)
LoadBalanceTimeout (LBT) 0
LoadBalancing (LB) 0(禁用)
LOBPrefetchSize (LPS) 4000
LocalTimezoneOffset (LTZO) ""(空字符串)
LockTimeout (LTO) -1
LoginTimeout (LT) 15
LogonID (UID)
MaxPoolSize (MXPS) 100
MinPoolSize (MNPS) 0
Module (MOD)
Password (PWD)
Pooling (POOL) 0(禁用)
PortNumber (PORT)
PRNGSeedFile (PSF)(仅限 UNIX 和 Linux) /dev/random
PRNGSeedSource (PSS)(仅限 UNIX 和 Linux) 0(文件)
ProcedureRetResults (PRR) 0(禁用)
ProgramID (PID)
ProxyHost (PXHN) 空字符串
ProxyMode (PXM) 0(无)
ProxyPassword (PXPW) 空字符串
ProxyPort (PXPT) 0
ProxyUser (PXU) 空字符串
QueryTimeout (QT) 0
ReportCodepageConversionErrors (RCCE) 0(忽略错误)
ReportRecycleBin (RRB) 0(禁用)
SDUSize (SDU) 16384
ServerName (SRVR)
ServerType (ST) 0(服务器默认值)
ServiceName (SN) 无。 如果没有为 SID、Service Name 或 TNSNames 选项指定任何值,则默认情况下驱动程序会尝试连接到 ORCL SID。
SID (SID) 无。 如果没有为 SID、Service Name 或 TNSNames 选项指定任何值,则默认情况下驱动程序会尝试连接到 ORCL SID。
SSLLibName (SLN) 空字符串
SupportBinaryXML (SBX) 0(禁用)
TimestampEscapeMapping (TEM) 0(特定于 Oracle 版本)
TNSNamesFile (TNF) 无。 如果没有为 SID、Service Name 或 TNSNames 选项指定任何值,则默认情况下驱动程序会尝试连接到 ORCL SID。
Truststore (TS)
TruststorePassword (TSP)
UseCurrentSchema (UCS) 1(启用)
UseDefaultEncryptionOptions 1(启用)
ValidateServerCertificate (VSC) 1(启用)
WireProtocolMode (WPM) 2

Teradata

只能指定在 Teradata 连接器配置选项中提供的连接器配置选项中具有条目的键值对。

用于 Cosmos DB 的 MongoDB API

只能指定在下面的驱动程序配置选项中具有条目的键值对。

项名 默认 必需 说明
DefaultStringColumnLength 255 STRING 列中可以包含的最大字符数。 可以为此选项设置的最大值为 2147483647。
noCursorTimeout False 此选项指定驱动程序是否允许数据源服务器上的活动游标过期。 当为 FALSE 时,数据源服务器将在服务器上设置的阈值非活动期之后使空闲游标超时。 当设置为 TRUE 时,驱动程序会阻止数据源服务器使空闲游标超时,并且如果驱动程序意外退出或失去与服务器的连接,则存在这样的风险,游标将在服务器上无限期保持打开状态。 可以在 MongoDB 服务器上调整空闲游标超时的阈值,有关详细信息,请参阅 https://docs.mongodb.com/v3.0/reference/parameters/
SamplingLimit 100 驱动程序可以采样以生成临时架构定义的最大记录数。 当此选项设置为 0 时,驱动程序会对数据库中的每个文档进行采样。

确保配置驱动程序以进行所有必要的数据采样。 未采样的文档不会包含在架构定义中,因此不会在 ODBC 应用程序中可用。

通常,对大量文档进行采样会产生更准确且能够更好地表示数据库中所有数据的架构定义。 但是,当对许多文档进行采样时,采样过程可能需要比预期更长的时间,尤其是当数据库包含复杂的嵌套数据结构时。
SamplingStrategy 前进 此选项指定驱动程序在生成临时架构定义时如何进行数据采样。

前进:驱动程序从数据库中的第一条记录开始进行数据采样,然后对下一条记录进行采样,依此类推。
后退:驱动程序从数据库中的最后一条记录开始进行数据采样,然后对前一条记录进行采样,依此类推。
随机:驱动程序从数据源中随机选择记录进行采样,直到达到 SamplingLimit。
SSL Clear (0) 此选项指定驱动程序是否使用 SSL 连接到服务器。 启用 (1):驱动程序使用 SSL 连接到服务器。禁用 (0):驱动程序不使用 SSL 连接到服务器。

泛型 ODBC

可以为 PolyBase 泛型 ODBC 外部数据源指定的有效 CONNECTION_OPTIONS 特定于驱动程序。 如果不使用 Microsoft 提供的 ODBC 提供程序(请参阅上一节),请参阅驱动程序文档以获取有效的键值对。

PolyBase 中有一些适用于所有泛型 ODBC 驱动程序的有效键值对。 以下键已添加到 SQL Server 2019 CU5。

密钥 可能值 说明
PolyBaseOdbcSupportsRowCount true、FALSE 指示驱动程序是否支持在 ODBC 目录函数上调用的 SQLRowCount 函数。 默认值为 false。 例如:CONNECTION_OPTIONS='PolyBaseOdbcSupportsRowCount=TRUE'
PolyBaseOdbcSupportsMetadataIdAttributes true、FALSE 指示驱动程序是否支持设置 METADATA_ID 语句属性。 默认值为 false。 例如:CONNECTION_OPTIONS='PolyBaseOdbcSupportsMetadataIdAttributes=TRUE'
PolyBaseOdbcSupportsBindOffset true、FALSE 指示驱动程序是否支持结果集的逐行绑定的绑定偏移量。 如果不支持,请使用列绑定。 默认值为 false。 例如:CONNECTION_OPTIONS='PolyBaseOdbcSupportsBindOffset=TRUE'
PolyBaseQoTopPushdownSyntax TOP、LIMIT 包含指定如何将 TOP 运算符下推到后端的信息。 默认值为空字符串,表示缺少对 TOP 下推的支持。 如果用户指定 TOP,则使用 top {0} 作为格式字符串。 如果用户指定 LIMIT,则使用 limit {0} 作为格式字符串。 此实现特定于驱动程序,请参阅外部数据源和/或驱动程序文档。 例如:CONNECTION_OPTIONS= PolyBaseQoTopPushdownSyntax=TOP'

后续步骤