Microsoft ODBC Driver for SQL Server on Windows 的功能

下載 ODBC 驅動程式 (部分機器翻譯)

Windows 上的 Microsoft ODBC Driver 18.0 for SQL Server

ODBC Driver 18.0 可讓使用者使用 LongAsMax 關鍵字來將設定切換為開啟或關閉,以便將 long 資料類型當成 max 資料類型來傳送。 啟用時,會將 SQL 類型 SQL_LONGVARCHAR、SQL_LONGVARBINARY 與 SQL_LONGWVARCHAR 分別以 varchar(max)、varbinary(max) 與 nvarchar(max) 而非文字、影像與 ntext 的形式來傳送。

連線加密預設值已變更。 Encrypt 的預設值現在為 Yes,並引入了新的關鍵字 Optional 與 Mandatory (分別為 No 與 Yes 的同義字)。 為了使用 TDS 8.0 通訊協定進行連線,已新增 Strict 模式 (Encrypt=Strict)。 在此模式中,伺服器憑證一律會經過驗證 (TrustServerCertificate 會被忽略)。 您可以使用新的關鍵字 HostnameInCertificate 來指定預期要在憑證中找到的主機名稱 (如果其與指定的伺服器不同)。 HostnameInCertificate 適用於所有加密模式,而且在啟用伺服器端 Force Encryption 選項時也適用,除非使用 TrustServerCertificate 停用,否則,這將導致驅動程式在 Optional 或 Mandatory 模式中驗證憑證。

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 驅動程式 17.4 包括能夠調整 TCP Keep-Alive 設定。 您可以將值新增至驅動程式或 DSN 登錄機碼來進行修改。 這些機碼位於適用於系統資料來源的 HKEY_LOCAL_MACHINE\Software\ODBC\,以及適用於使用者資料來源的 HKEY_CURRENT_USER\Software\ODBC\ 中。 針對 DSN,必須將值新增至 ...\Software\ODBC\ODBC.INI\<DSN Name>;針對驅動程式,則必須新增至 ...\Software\ODBC\ODBCINST.INI\ODBC Driver 17 for SQL Server

如需詳細資訊,請參閱 ODBC 元件的登錄項目 (部分機器翻譯)。

值為 REG_SZ,如下所示:

  • KeepAlive 會藉由傳送 keep-alive 封包,控制 TCP 嘗試驗證閒置連線是否仍完整無缺的頻率。 預設值為 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

Microsoft Entra ID 可讓使用者、DBA 和應用程式程式設計人員使用 Microsoft Entra 驗證。 如需詳細資訊,請參閱搭配 ODBC 驅動程式使用 Microsoft Entra ID使用 Azure Active Directory 驗證連線到 Azure SQL 或 Azure Synapse Analytics

Windows 上的 Microsoft ODBC Driver 11 for SQL Server

ODBC Driver for SQL Server 包含 SQL Server 2012 (11.x) 隨附之 SQL Server Native Client ODBC 驅動程式的所有功能。 如需 SQL Server Native Client 的詳細資訊,請參閱 SQL Server Native 程式設計 (部分機器翻譯)。 SQL Server Native Client ODBC 驅動程式以 Windows 作業系統中隨附的 ODBC 驅動程式為基礎。 如需該驅動程式的詳細資訊,請參閱 Windows Data Access Components SDK (英文)。

這個 ODBC Driver for SQL Server 發行版本包含下列新功能:

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 中,sqlcmd.exe-y0 選項會在顯示寬度為 0 時,將輸出截斷為 1 MB。

從 ODBC Driver 11 for SQL Server 開始,在已指定 -y0 的情況下,單一資料行中沒有可擷取資料量的限制。 sqlcmd.exe 現在可串流處理多達 2 GB (SQL Server 資料類型上限) 的資料行。

另一項差異是,同時指定 -h-y0 現在會產生選項不相容的錯誤報告。 -h 會指定要在欄位標題間列印的資料列數目,且從不與 -y0 相容,該項目雖然不會列印標題,但是遭到忽略。

視傳回的資料大小而定,-y0 可能會讓伺服器與網路出現效能問題。

另請參閱

Windows 上的 Microsoft ODBC Driver for SQL Server