sp_serveroption (Transact-SQL)

設定遠端伺服器和連結伺服器的伺服器選項。

主題連結圖示Transact-SQL 語法慣例

語法

sp_serveroption [@server = ] 'server' 
      ,[@optname = ] 'option_name'     
      ,[@optvalue = ] 'option_value' ;

引數

  • [ @server = ] 'server'
    這是要設定選項的伺服器名稱。server 是 sysname,沒有預設值。

  • [ @optname = ] 'option_name'
    這是要設給指定伺服器的選項。option_name 是 varchar(35),沒有預設值。option_name 可以是下列值之一。

    描述

    collation compatible

    影響針對連結伺服器的分散式查詢執行。如果這個選項設為 true,關於字元集和定序順序 (或排序順序),SQL Server 會假設連結伺服器中的所有字元都與本機伺服器相容。這會使 SQL Server 能夠將字元資料行的比較傳給提供者。如果未設定這個選項,SQL Server 一律會在本機環境中評估字元資料行的比較。

    只有在確定對應於連結伺服器的資料來源與本機伺服器的字元集和排序順序相同時,才應該設定這個選項。

    collation name

    指定如果使用遠端定序true,資料來源不是 SQL Server 資料來源,遠端資料來源所用的定序名稱。這個名稱必須是 SQL Server 所支援的定序之一。

    當存取不是 SQL Server,但其定序卻符合某項 SQL Server 定序的 OLE DB 資料來源時,請使用這個選項。

    連結伺服器必須支援供這部伺服器的所有資料行使用的單一定序。如果連結伺服器支援單一資料來源內的多重定序,或無法確定連結伺服器的定序是否符合某項 SQL Server 定序時,請勿設定這個選項。

    connect timeout

    連接到連結伺服器的逾時值 (以秒為單位)。

    如果是 0,請使用 sp_configure 預設值。

    data access

    啟用和停用連結伺服器的分散式查詢存取。只能用於透過 sp_addlinkedserver 加入的 sys.server 項目。

    dist

    散發者。

    lazy schema validation

    判斷是否將檢查遠端資料表的結構描述。

    如果是 true,在查詢開始時,會略過遠端資料表的結構描述檢查。

    pub

    發行者。

    query timeout

    針對連結伺服器進行查詢的逾時值。

    如果是 0,請使用 sp_configure 預設值。

    rpc

    從給定伺服器啟用 RPC。

    rpc out

    啟用指向給定伺服器的 RPC。

    sub

    訂閱者。

    system

    僅供參考之用。不支援。我們無法保證未來的相容性。

    use remote collation

    決定將使用遠端資料行或本機伺服器的定序。

    如果是 true,SQL Server 資料來源會使用遠端資料行的定序,非 SQL Server 資料來源會使用 collation name 所指定的定序。

    如果是 false,分散式查詢一律會使用本機伺服器的預設定序,collation name 和遠端資料行的定序會被忽略。預設值是 false。(false 值與 SQL Server 7.0 所用的定序語意相容。)

    remote proc transaction promotion

    使用此選項,透過 Microsoft 分散式交易協調器 (MS DTC) 交易,保護伺服器對伺服器程序的動作。當此選項為 TRUE (或 ON) 時,呼叫遠端預存程序就會啟動分散式交易,而且會利用 MS DTC 來編列這項交易。發出遠端預存程序呼叫的 SQL Server 執行個體是交易發起者,它會控制交易的完成。當發出連接的後續 COMMIT TRANSACTION 或 ROLLBACK TRANSACTION 陳述式時,負責控制的執行個體會要求 MS DTC 跨越所涉及的各部電腦來管理分散式交易的完成。

    在啟動 Transact-SQL 分散式交易之後,會向已定義為連結伺服器的其他 SQL Server 執行個體發出遠端預存程序呼叫。所有連結伺服器都會編列在 Transact-SQL 分散式交易中,MS DTC 會確保已針對每部連結伺服器來完成交易。

    如果此選項設定為 FALSE (或 OFF),在連結伺服器上呼叫遠端預存程序時,本機交易將不會升級為分散式交易。

    如果在進行伺服器對伺服器的程序呼叫之前,此交易已經是分散式交易,則此選項不會有任何影響。針對連結伺服器執行的程序呼叫將會在相同的分散式交易之下執行。

    如果在進行伺服器對伺服器的程序呼叫之前,連接中沒有任何使用中的交易,則此選項不會有任何影響。然後此程序會在沒有使用中交易的情況下對連結伺服器執行。

    這個選項的預設值是 TRUE (或 ON)。

  • [ @optvalue =] 'option_value'
    指定應該啟用 (TRUEon) 或停用 (FALSEoff) option_name。option_value 是 varchar(10),沒有預設值。

    connect timeoutquery timeout 選項的 option_value 可以是非負整數。collation name 選項的 option_value 可以是定序名稱或 NULL。

傳回碼值

0 (成功) 或 1 (失敗)

備註

如果 collation compatible 選項設為 TRUE,collation name 會自動設為 NULL。如果 collation name 設為非 null 值,collation compatible 會自動設為 FALSE。

權限

需要伺服器的 ALTER ANY LINKED SERVER 權限。

範例

下列範例會將對應於另一個 SQL Server 執行個體 (SEATTLE3) 的連結伺服器,設定成定序相容於 SQL Server 的本機執行個體。

USE master;
EXEC sp_serveroption 'SEATTLE3', 'collation compatible', 'true';