使用 SQL Server 中的選項

Microsoft SQL Server 提供了可影響 SQL 陳述式之結果與效能的選項。您可以透過下列方式來設定這些選項:

  • 若要設定執行個體層級的組態選項,請使用 sp_configure 預存程序。

  • 若要設定資料庫層級的選項,請使用 ALTER DATABASE SET Options 陳述式。

  • 若要設定資料庫相容性層級,請使用 ALTER DATABASE Compatibility Level 陳述式。

  • 若要指定批次層級的選項 (SET 選項),請使用 SET 陳述式 (例如 SET ANSI_PADDING 和 SET ANSI_NULLS)。

    [!附註]

    在舊版的 SQL Server 中以及已停用 Multiple Active Result Sets (MARS) 的連接中,批次層級的選項是指連接層級的選項。

  • 若要指定陳述式層級的選項,如查詢提示、資料表提示與聯結提示,請使用個別的 Transact-SQL 陳述式。如需詳細資訊,請參閱<提示 (Transact-SQL)>。

ODBC 應用程式可以指定控制某些 ANSI SET 選項的連線選項。依預設,SQL Server Native Client OLE DB Provider for SQL Server 與 SQL Server Native Client ODBC 驅動程式會設定數個 SET 選項。

您應避免變更 SET 選項,以及透過 SET 陳述式設定這些選項。建議您透過 ODBC 或 OLE DB 的連接屬性,在連接層級上設定 SET 選項。此外,您可以使用 sp_configure 預存程序來變更 SET 選項設定。

sp_configure 提供選項 user options。這可讓您變更一些 SET 選項的預設值。雖然使用者選項看似執行個體選項,但是使用者選項其實是 SET 選項。

選項的階層

若選項在多個層級上都受支援,則會以下列階層為準:

  1. 資料庫選項會覆寫執行個體選項。

  2. SET 選項會覆寫資料庫選項。

  3. 提示 (Hint) 會覆寫 SET 選項。

[!附註]

在動態 SQL 批次中設定的 SET 選項,其影響範圍僅限於該批次。

[!附註]

QUOTED_IDENTIFIER 與 ANSI_NULLS 之類的 SET 選項,會隨預存程序定義而保留,因此會優先於其他為它們明確設定的值。