Windows 上的 Microsoft ODBC Driver for SQL Server 的功能

下载 ODBC 驱动程序

Windows 上的 Microsoft ODBC Driver 18.0 for SQL Server

ODBC Driver 18.0 允许用户使用关键字 LongAsMax 将长数据类型作为最大数据类型发送,以打开或关闭设置。 启用后,SQL 类型 SQL_LONGVARCHAR、SQL_LONGVARBINARY 和 SQL_LONGWVARCHAR 将分别作为 varchar (max)、varbinary (max) 和 nvarchar (max) 而不是 text、image 和 ntext 发送。

连接加密默认值已更改。 “加密”的默认值现在为“是”,还引入了新关键字“可选”和“必需”分别作为“否”和“是”的同义词。 为了使用 TDS 8.0 协议进行连接,已添加严格模式 (Encrypt=Strict)。 在此模式下,始终验证服务器证书(忽略 TrustServerCertificate)。 如果新关键字 HostnameInCertificate 与指定的服务器不同,则可用于指定在证书中找到的预期主机名。 HostnameInCertificate 在所有加密模式下都可用,如果服务器端 Force Encryption 选项已启用,则也适用,这会使驱动程序在“可选”或“强制”模式下验证证书,除非使用 TrustServerCertificate 将其禁用。

ODBC Driver 18 包括 SQLGetData 扩展。 启用后,SQLGetData 可用于按行内的任何顺序(包括向后移动)检索列数据。 此功能出于兼容性目的而提供,将显著降低性能并增加内存使用率。 强烈建议应用程序始终按升序访问列。 若要启用 SQLGetData 扩展,可以使用 GetDataExtensions 连接字符串属性,或使用 SQLSetConnectAttr 函数将 SQL_COPT_SS_GETDATA_EXTENSIONS 设置为 SQL_EN_ON

从 ODBC Driver 18.2 开始,包括对 Windows ARM64 的支持,目前为预览版。 ARM64 驱动程序仅适用于 64 位的 ARM64 应用程序,不包括 32 位的 ARM,也不包括 x86/amd64 仿真驱动程序。

Windows 上的 Microsoft ODBC Driver 17.4 for SQL Server

ODBC Driver 17.4 具有调整 TCP Keep-Alive 设置的功能。 可以通过将值添加到 Driver 或 DSN 注册表项来修改这些设置。 这些项位于系统数据源的 HKEY_LOCAL_MACHINE\Software\ODBC\ 中,以及用户数据源的 HKEY_CURRENT_USER\Software\ODBC\ 中。 对于 DSN,需要将这些值添加到 ...\Software\ODBC\ODBC.INI\<DSN Name> 中,对于 Driver,则需要添加到 ...\Software\ODBC\ODBCINST.INI\ODBC Driver 17 for SQL Server 中。

有关详细信息,请参阅 ODBC 组件的注册表项

值为 REG_SZ,如下所示:

  • KeepAlive 控制 TCP 通过发送 keep-alive 数据包尝试验证空闲连接是否仍保持原样的频率。 默认为 30 秒。

  • KeepAliveInterval 确定在收到响应之前分隔 keep-alive 重新传输的时间间隔。 默认值为 1 秒。

Windows 上的 Microsoft ODBC Driver 13.1 for SQL Server

ODBC Driver 13.1 for SQL Server 包含先前版本 (11) 的所有功能。 此外,还添加了对 Always Encrypted 和 Microsoft Entra ID(旧称 Azure Active Directory)身份验证的支持。

始终加密允许客户端对客户端应用程序内的敏感数据进行加密,并且永远不向 SQL Server 显示加密密钥。 安装在客户端计算机上的启用 Always Encrypted 的驱动程序通过在 SQL Server 客户端应用程序中对敏感数据进行加密和解密来实现此安全性。 将数据传输到 SQL Server 前,驱动程序会对敏感列中的数据进行加密。 它还会自动重写查询,以便保留应用程序的语义。 同样,该驱动程序以透明方式对存储在加密数据库列(包含在查询结果中)中的数据进行解密。 有关详细信息,请参阅在 ODBC 驱动程序中使用 Always Encrypted

用户、DBA 和应用程序程序员可通过 Microsoft Entra ID 使用 Microsoft Entra 身份验证。 有关详细信息,请参阅结合使用 Microsoft Entra ID 和 ODBC 驱动程序使用 Microsoft Entra ID 身份验证连接到 SQL 数据库或 Azure Synapse Analytics

Microsoft ODBC Driver 11 for SQL Server(Windows 平台)

适用于 SQL Server 的 ODBC 驱动程序包含 SQL Server 2012 (11.x) 中随附的 SQL Server Native Client ODBC 驱动程序的所有功能。 有关 SQL Server Native Client 的详细信息,请参阅 SQL Server Native Client 编程。 SQL Server Native Client ODBC 驱动程序基于 Windows 操作系统中随附的 ODBC 驱动程序。 有关该驱动程序的详细信息,请参阅 Windows 数据访问组件 SDK

该版本适用于 SQL Server 的 ODBC 驱动程序包含以下新功能:

用于指定登录超时的 bcp.exe -l 选项

-l 选项指定在尝试连接到服务器时 bcp.exe 登录 SQL Server 的超时时间(以秒为单位)。 默认登录超时值为 15 秒。 登录超时必须是介于 0 和 65534 之间的数字。 如果提供的值不是数值或不在此范围内,则 bcp.exe 将生成错误消息。 值 0 指定无限超时。 登录超时时间小于(大约)10 秒不可靠。

识别驱动程序的连接池

ODBC Driver for SQL Server 支持识别驱动程序的连接池。 有关详细信息,请参阅 ODBC Driver for SQL Server 中识别驱动程序的连接池

异步执行(通知方法)

ODBC Driver for SQL Server 支持异步执行(通知方法)。 有关用法示例,请参阅异步执行(通知方法)示例

连接复原

为了确保应用程序能与 Microsoft Azure SQL Database 保持连接,Windows 上的 ODBC 驱动程序可以还原空闲连接。 有关详细信息,请参阅 Windows ODBC 驱动程序中的连接弹性

行为变更

在 SQL Server Native Client 中,如果显示宽度为 0,sqlcmd.exe-y0 选项将导致输出在 1 MB 处被截断。

从 ODBC Driver 11 for SQL Server 开始,当指定 -y0 时,对单列中可以检索的数据量没有任何限制。 现在,sqlcmd.exe 最多可流式传输 2GB(SQL Server 数据类型最大值)列。

另一个区别在于,现在,同时指定 -h-y0 会生成一个错误报告,指出这些选项不兼容。 -h 用于指定要在列标题之间输出的行数且从未与 -y0 兼容,并已忽略(尽管未打印任何标题)。

-y0 可能导致服务器和网络上出现性能问题,具体取决于返回的数据大小。

另请参阅

Windows 上的 Microsoft ODBC Driver for SQL Server