sp_serveroption (Transact-SQL)

Si applica a:SQL Server

Imposta le opzioni per server remoti e server collegati.

Convenzioni di sintassi Transact-SQL

Sintassi

sp_serveroption
    [ @server = ] N'server'
    , [ @optname = ] 'optname'
    , [ @optvalue = ] N'optvalue'
[ ; ]

Argomenti

[ @server = ] N'server'

Nome del server per cui impostare l'opzione. @server è sysname, senza impostazione predefinita.

[ @optname = ] 'optname'

Opzione da impostare per il server specificato. @optname è varchar(35), senza impostazione predefinita. @optname può essere uno dei valori seguenti.

Valore Descrizione
regole di confronto compatibili Influisce sull'esecuzione di query distribuite su server collegati. Se questa opzione è impostata su true, SQL Server presuppone che tutti i caratteri nel server collegato siano compatibili con il server locale, in relazione al set di caratteri e alla sequenza di regole di confronto (o all'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 sulle colonne di caratteri in locale.

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.
Nome delle regole di confronto Specifica il nome delle regole di confronto usate dall'origine dati remota se si usano regoletrue di confronto remote e l'origine dati non è un'origine dati di SQL Server. È necessario specificare il nome di uno dei set di regole di confronto supportate da SQL Server.

Usare questa opzione per accedere a un'origine dei dati OLE DB diversa da SQL Server ma le cui regole di confronto corrispondono a una delle 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 se il server collegato supporta più regole di confronto all'interno di una singola origine dati o se le regole di confronto del server collegato non possono essere determinate in modo che corrispondano a una delle regole di confronto di SQL Server.
timeout connessione Specifica il valore di timeout in secondi per la connessione a un server collegato.

Se 0, l'impostazione di timeout di connessione usa il valore predefinito configurato per l'impostazione remote login timeout (s) . Il valore predefinito per remote login timeout (s) è 10.

È possibile visualizzare questa impostazione dalla vista del sys.configurations catalogo con la query seguente: SELECT name, value_in_use FROM sys.configurations WHERE name like 'remote login timeout (s)';.
accesso ai dati Consente di attivare e disabilitare un server collegato per l'accesso a query distribuite. Può essere usato solo per sys.server le voci aggiunte tramite sp_addlinkedserver.
dist Server di distribuzione.
name Specifica il nome dell'oggetto server collegato.

La modifica del nome viene riflessa nel valore restituito dalla name colonna della sys.servers vista del catalogo, senza influire sull'origine dati remota.
stringa del provider Specifica la stringa OLE DB che identifica l'origine di una connessione al server collegato.

La modifica della stringa del provider viene riflessa nel valore restituito dalla provider_string colonna della vista del sys.servers catalogo.
convalida dello schema differita Determina se lo schema delle tabelle remote è selezionato.

Se true, ignorare il controllo dello schema delle tabelle remote all'inizio della query.
pub Autore.
timeout query Specifica il valore di timeout per le query su un server collegato.

Se 0, usare l'impostazione sp_configure predefinita.
rpc Abilita l'esecuzione di chiamate RPC dal server specificato.
rpc out Abilita 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.
Usare le regole di confronto remote Determina se vengono utilizzate le regole di confronto di una colonna remota o di un server locale.

Se true, le regole di confronto delle colonne remote vengono usate per le origini dati di SQL Server e le regole di confronto specificate nel nome delle regole di confronto vengono usate per le origini dati non SQL Server. Si tratta dell'impostazione predefinita.

Se false, le query distribuite usano sempre le regole di confronto predefinite del server locale, mentre il nome delle regole di confronto e le regole di confronto delle colonne remote vengono ignorate.
promozione delle transazioni remote proc Usare questa opzione per proteggere le azioni di una procedura da server a server tramite una transazione MS DTC (Microsoft Distributed Transaction Coordinator). Quando questa opzione è true (o on), la chiamata a una stored procedure remota avvia una transazione distribuita ed integra la transazione con MS DTC. L'istanza di SQL Server in cui viene chiamata la stored procedure remota corrisponde all'origine della transazione e ne controlla il completamento. Quando viene eseguita una successiva istruzione COMMIT TRANSACTION o ROLLBACK TRANSACTION per la connessione, l'istanza di controllo richiede che MS DTC gestisca il completamento della transazione distribuita tra i computer coinvolti.

Dopo l'avvio di una transazione distribuita Transact-SQL, è possibile effettuare chiamate di stored procedure remote ad altre istanze di SQL Server definite come server collegati. I server collegati sono tutti inclusi nella transazione distribuita Transact-SQL e MS DTC garantisce che la transazione venga completata su ogni server collegato.

Se questa opzione è impostata su false (o off), una transazione locale non viene promossa a una transazione distribuita durante la chiamata a una chiamata di procedura remota in un server collegato.

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

Se nella connessione non è attiva alcuna transazione prima di effettuare una chiamata di procedura da server a server, 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 = ] N'optvalue'

Specifica se il @optname deve essere abilitato (true o on) o disabilitato (false o off). @optvalue è nvarchar(128), senza impostazione predefinita.

  • Per le opzioni di timeout di connessione e timeout delle query, @optvalue può essere un numero intero non negativo.

  • Per l'opzione del nome delle regole di confronto, @optvalue può essere un nome di regole di confronto o NULL.

  • Per l'opzione name , @optvalue può essere una stringa, che rappresenta il nuovo nome della connessione al server collegato.

  • Per l'opzione della stringa del provider, @optvalue può essere una stringa o NULL, che rappresenta la nuova origine OLE DB della connessione al server collegato.

Valori del codice restituito

0 (esito positivo) o 1 (errore).

Osservazioni:

Se l'opzione compatibile con le regole di confronto è impostata su true, il nome delle regole di confronto viene impostato automaticamente su NULL.

Se il nome delle regole di confronto è impostato su un valore non Null, le regole di confronto compatibili automaticamente vengono impostate su false.

Autorizzazioni

È richiesta l'autorizzazione ALTER ANY LINKED SERVER per il server.

Esempi

Nell'esempio seguente viene configurato un server collegato corrispondente a un'altra istanza di SQL Server, SEATTLE3, in modo che siano compatibili con le regole di confronto con l'istanza locale di SQL Server.

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

Nell'esempio seguente viene rinominata la connessione al server collegato da PRODVM01\ProdSQL01 a LinkToProdSQL01.

USE master;
GO
EXEC sp_serveroption
    @server = N'PRODVM01\ProdSQL01',
    @optname = 'name',
    @optvalue = N'LinkToProdSQL01';
GO