ISO 選項的作用

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

ODBC 標準與 ISO 標準相當接近,而且 ODBC 應用程式應該是來自 ODBC 驅動程式的標準行為。 為了讓其行為與 ODBC 標準中所定義的更緊密一致,SQL Server Native Client ODBC 驅動程式一律會使用其連接之SQL Server版本中可用的任何 ISO 選項。

當 SQL Server Native Client ODBC 驅動程式連接到 SQL Server 實例時,伺服器會偵測到用戶端正在使用 SQL Server Native Client ODBC 驅動程式,並設定數個選項。

驅動程式本身會發出這些陳述式;ODBC 應用程式不用做任何事情就可以要求它們。 設定這些選項可以使用驅動程式,讓 ODBC 應用程式更容易攜帶,因為伺服器行為會符合 ISO 標準。

以 DB-Library 為基礎的應用程式一般不會開啟這些選項。 執行相同 SQL 語句時,在 ODBC 或DB-Library用戶端之間觀察到不同行為的網站,不應該假設這指向SQL Server Native Client ODBC 驅動程式的問題。 它們應該先使用與 SQL Server Native Client ODBC 驅動程式所使用的相同 SET 選項,在 DB-Library 環境中重新執行 語句。

由於使用者和應用程式可以隨時開啟和關閉 SET 選項,因此,預存程序和觸發程序的開發人員也應該在開啟和關閉以上列出的 SET 選項時,小心測試其程序和觸發程序。 無論特定連接叫用程序或觸發程序時已經設定哪些選項,這都可以確保程序和觸發程序能正常運作。 對於需要為這些選項的其中之一進行特定設定的觸發程序或預存程序,應該在觸發程序或預存程序開始時發出 SET 陳述式。 此 SET 陳述式只有在執行觸發程序或預存程序時才有效,當程序或觸發程序結束時,就會還原原始的設定。

連接到 SQL Server 實例時,也會開啟第四個 SET 選項 CONCAT_Null_YIELDS_Null。 如果資料來源或SQLDriverConnectSQLBrowseConnect中指定 AnsiNPW=NO,則 SQL Server Native Client ODBC 驅動程式不會設定這些選項。

如同先前所述的 ISO 選項,如果資料來源或SQLDriverConnectSQLBrowseConnect中指定 QuotedID=NO,SQL Server Native Client ODBC 驅動程式就不會開啟QUOTED_IDENTIFIER選項。

為了讓驅動程式知道 SET 選項的目前狀態,ODBC 應用程式不應該使用 Transact-SQL SET 語句來設定這些選項。 它們應該只會使用資料來源或連接選項設定這些選項。 如果應用程式發出 SET 陳述式,此驅動程式可能會產生不正確的 SQL 陳述式。

另請參閱

ODBC (執行語句)
SQLDriverConnect
SQLBrowseConnect