sp_serveroption (Transact-SQL)

Imposta le opzioni per server remoti e server collegati.

Icona di collegamento a un argomentoConvenzioni della sintassi Transact-SQL

Sintassi

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

Argomenti

  • [ @server = ] 'server'
    Nome del server per il quale impostare l'opzione. server è di tipo sysname e non prevede alcun valore predefinito.

  • [ @optname = ] 'option_name'
    Opzione da impostare per il server specificato. option_name è di tipo varchar(35) e non prevede alcun valore predefinito. I possibili valori di option_name sono i seguenti.

    Valore

    Descrizione

    collation compatible

    Influisce sull'esecuzione delle query distribuite in server collegati. Se questa opzione è impostata su true, SQL Server considera tutti i caratteri del server collegato compatibili con il server locale, relativamente al set di caratteri e alla sequenza di confronto oppure al tipo di ordinamento. Ciò consente a SQL Server di inviare al provider i confronti per colonne di tipo carattere. Se questa opzione non è impostata, SQL Server valuta sempre i confronti per le colonne di tipo carattere localmente.

    Impostare questa opzione solo se nell'origine dei dati corrispondente al server collegato il set di caratteri e il tipo di ordinamento corrispondono a quelli del server locale.

    collation name

    Specifica il nome delle regole di confronto utilizzate dall'origine dei dati remota quando use remote collation è true e l'origine dei dati non è un'origine dei dati di SQL Server. È necessario specificare il nome di uno dei set di regole di confronto supportate da SQL Server.

    Utilizzare questa opzione per accedere a un'origine dei dati OLE DB diversa da SQL Server che utilizza regole di confronto di SQL Server.

    Il server collegato deve supportare regole di confronto singole da utilizzare per tutte le colonne del server. Non impostare questa opzione quando il server collegato supporta più regole di confronto nella stessa origine dei dati oppure non è possibile stabilire se le regole di confronto del server collegato corrispondono a una delle regole di confronto di SQL Server.

    connect timeout

    Valore di timeout espresso in secondi per la connessione al server collegato.

    Se è uguale a 0, utilizza il valore predefinito di sp_configure.

    data access

    Attiva e disattiva un server collegato per l'accesso a query distribuite. È possibile utilizzarla solo per le voci sys.server aggiunte tramite sp_addlinkedserver.

    dist

    Server di distribuzione.

    lazy schema validation

    Determina se lo schema delle tabelle remote viene controllato.

    Se è true, ignora il controllo dello schema delle tabelle remote all'inizio della query.

    pub

    Server di pubblicazione.

    query timeout

    Timeout per le query eseguite nel server collegato.

    Se è uguale a 0, utilizza il valore predefinito di sp_configure.

    rpc

    Attiva l'esecuzione di chiamate RPC dal server specificato.

    rpc out

    Attiva l'esecuzione di chiamate RPC al server specificato.

    sub

    Sottoscrittore.

    system

    Identificato solo a scopo informativo. Non supportato. Non è garantita la compatibilità con le versioni future.

    use remote collation

    Determina se vengono utilizzate le regole di confronto di una colonna remota o di un server locale.

    Se true, nelle origini dei dati di SQL Server vengono adottate le regole di confronto delle colonne remote, mentre le regole di confronto specificate in collation name vengono utilizzate per origini dei dati diverse da SQL Server.

    Se è false, nelle query distribuite vengono sempre utilizzate le regole di confronto predefinite del server locale, mentre l'opzione collation name e le regole di confronto delle colonne remote vengono ignorate. Il valore predefinito è false. Il valore false è compatibile con la semantica delle regole di confronto utilizzata in SQL Server 7.0.

    remote proc transaction promotion

    Questa opzione consente di proteggere le azioni di una procedura da server a server tramite una transazione MS DTC (Microsoft Distributed Transaction Coordinator). Quando questa opzione è impostata su TRUE (o ON), la chiamata di una stored procedure remota comporta l'avvio di una transazione distribuita e l'integrazione della transazione in MS DTC. L'istanza di SQL Server che esegue la chiamata della stored procedure remota corrisponde all'origine della transazione e ne controlla il completamento. Quando viene eseguita un'istruzione COMMIT TRANSACTION o ROLLBACK TRANSACTION successiva per la connessione, l'istanza di controllo richiede che il completamento della transazione distribuita nei computer interessati venga gestito da MS DTC.

    Dopo l'avvio di una transazione distribuita Transact-SQL, è possibile chiamare stored procedure remote in altre istanze di SQL Server definite come server collegati. Tutti i server collegati sono integrati nella transazione distribuita Transact-SQL. MS DTC garantisce inoltre che la transazione venga completata in ogni server collegato.

    Se questa opzione è impostata su FALSE (o OFF), una transazione locale non sarà promossa a transazione distribuita durante una chiamata di procedura remota in un server collegato.

    Se prima di effettuare una chiamata di una procedura da server a server la transazione è già una transazione distribuita, questa opzione non ha alcun effetto. La chiamata di procedura nel server collegato verrà eseguita nella stessa transazione distribuita.

    Se prima di effettuare una chiamata di una procedura da server a server non vi sono transazioni attive nella connessione, questa opzione non ha alcun effetto. La procedura viene quindi eseguita nel server collegato senza transazioni attive.

    Il valore predefinito per questa opzione è TRUE (o ON).

  • [ @optvalue =] 'option_value'
    Specifica se il parametro option_name deve essere attivato (TRUE o on) oppure disattivato (FALSE o off). option_value è di tipo varchar(10) e non prevede alcun valore predefinito.

    Per le opzioni connect timeout e query timeout, il valore di option_value può essere un valore integer non negativo, mentre per l'opzione collation nameoption_value può essere NULL o un nome di regole di confronto.

Valori restituiti

0 (esito positivo) o 1 (esito negativo)

Osservazioni

Se l'opzione collation compatible è impostata su TRUE, l'opzione collation name viene impostata automaticamente su NULL. Se l'opzione collation name è impostata su un valore non NULL, collation compatible viene impostata automaticamente su FALSE.

Autorizzazioni

È necessario disporre dell'autorizzazione ALTER ANY LINKED SERVER per il server.

Esempi

Nell'esempio seguente viene configurata la compatibilità delle regole di confronto tra un server collegato corrispondente a un'altra istanza di SQL Server, SEATTLE3, e l'istanza locale di SQL Server.

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