ISO 選項的作用
適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics 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 標準。
資料庫連結庫型應用程式通常不會開啟這些選項。 執行相同 SQL 語句時,在 ODBC 或 DB 連結庫客戶端之間觀察到不同行為的網站不應該假設這點指向 SQL Server Native Client ODBC 驅動程序的問題。 它們應該會先使用與 SQL Server Native Client ODBC 驅動程式所使用的相同 SET 選項,在 DB-Library 環境中重新執行 語句。
因為使用者和應用程式可以隨時開啟和關閉 SET 選項,因此預存程式和觸發程式的開發人員也應該小心測試其程式和觸發程式,並開啟和關閉上述 SET 選項。 這可確保不論特定連接在叫用程式或觸發程式時可能設定的選項為何,程式和觸發程式都能正常運作。 需要其中一個選項特定設定的觸發程式或預存程式,應該在觸發程式或預存程式的開頭髮出SET語句。 此 SET 語句只會在執行觸發程式或預存程式時生效;當程式或觸發程序結束時,會還原原始設定。
連接到 SQL Server 實例時,也會開啟第四個 SET 選項CONCAT_NULL_YIELDS_NULL。 如果在數據源或 SQLDriverConnect 或 SQLBrowseConnect 上指定 AnsiNPW=NO,SQL Server Native Client ODBC 驅動程式就不會在 上設定這些選項。
如同先前所述的 ISO 選項,如果數據源或 SQLDriverConnect 或 SQLBrowseConnect 中指定 QuotedID=NO,SQL Server Native Client ODBC 驅動程式就不會開啟 QUOTED_IDENTIFIER 選項。
若要讓驅動程式知道 SET 選項的目前狀態,ODBC 應用程式不應該使用 Transact-SQL SET 語句來設定這些選項。 它們只應該使用數據源或連接選項來設定這些選項。 如果應用程式發出 SET 語句,驅動程式可能會產生不正確的 SQL 語句。