SET ANSI_DEFAULTS (Transact-SQL)
控制一群共同指定某些 ISO 標準行為的 SQL Server 設定。
語法
SET ANSI_DEFAULTS { ON | OFF }
備註
SET ANSI_DEFAULTS 是用戶端不會修改的伺服器端設定。 用戶端會管理自己的設定。 依預設,這些設定與伺服器設定相反。 使用者不應該修改伺服器設定。 若要變更用戶端行為,使用者應使用 SQL_COPT_SS_PRESERVE_CURSORS。 如需詳細資訊,請參閱<SQLSetConnectAttr>。
當啟用 (ON) 時,這個選項會啟用下列 ISO 設定:
SET ANSI_NULLS |
SET CURSOR_CLOSE_ON_COMMIT |
SET ANSI_NULL_DFLT_ON |
SET IMPLICIT_TRANSACTIONS |
SET ANSI_PADDING |
SET QUOTED_IDENTIFIER |
SET ANSI_WARNINGS |
|
這些 ISO 標準 SET 選項共同定義了使用者、執行中的觸發程序或預存程序之工作階段持續期間的查詢處理環境。 不過,這些 SET 選項並未包括符合 ISO 標準所需要的所有選項。
當處理計算資料行索引和索引檢視時,這些預設值其中的四個 (ANSI_NULLS、ANSI_PADDING、ANSI_WARNINGS 和 QUOTED_IDENTIFIER) 必須設為 ON。 這些預設值是在建立和變更計算資料行索引和索引檢視時,必須指派必要值的七個選項之中。 其他 SET 選項有 ARITHABORT (ON)、CONCAT_NULL_YIELDS_NULL (ON) 和 NUMERIC_ROUNDABORT (OFF)。 如需有關含索引檢視和計算資料行索引之必要 SET 選項設定的詳細資訊,請參閱<SET 陳述式 (Transact-SQL)>中的「使用 SET 陳述式時的考量」一節。
SQL Server 的 SQL Server Native Client ODBC 驅動程式和 SQL Server Native Client OLE DB 提供者在連接之時,都會自動將 ANSI_DEFAULTS 設為 ON。 之後,驅動程式和提供者便將 CURSOR_CLOSE_ON_COMMIT 和 IMPLICIT_TRANSACTIONS 設為 OFF。 您可以在 ODBC 資料來源、ODBC 連接屬性中設定 SET CURSOR_CLOSE_ON_COMMIT 和 SET IMPLICIT_TRANSACTIONS 的 OFF 設定,或在應用程式連接到 SQL Server 之前所設定的 OLE DB 連接屬性中設定這項設定。 起始於 DB-Library 應用程式的連接之 SET ANSI_DEFAULTS 預設值是 OFF。
當發出 SET ANSI_DEFAULTS 時,會在剖析階段設定 SET QUOTED_IDENTIFIER,執行階段所設定的選項如下:
SET ANSI_NULLS |
SET ANSI_WARNINGS |
SET ANSI_NULL_DFLT_ON |
SET CURSOR_CLOSE_ON_COMMIT |
SET ANSI_PADDING |
SET IMPLICIT_TRANSACTIONS |
權限
需要 public 角色中的成員資格。
範例
下列範例會設定 SET ANSI_DEFAULTS ON 以及利用 DBCC USEROPTIONS 陳述式來顯示受影響的設定。
-- SET ANSI_DEFAULTS ON.
SET ANSI_DEFAULTS ON
GO
-- Display the current settings.
DBCC USEROPTIONS
GO
-- SET ANSI_DEFAULTS OFF.
SET ANSI_DEFAULTS OFF
GO
請參閱
參考
DBCC USEROPTIONS (Transact-SQL)
SET ANSI_NULL_DFLT_ON (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CURSOR_CLOSE_ON_COMMIT (Transact-SQL)