sp_serveroption (Transact-SQL)

S’applique à :SQL Server

Définit les options de serveur pour les serveurs distants et les serveurs liés.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

[ @server = ] N’server'

Nom du serveur pour lequel définir l’option. @server est sysname, sans valeur par défaut.

[ @optname = ] 'optname'

Option à définir pour le serveur spécifié. @optname est varchar(35), sans valeur par défaut. @optname peut être l’une des valeurs suivantes.

Valeur Description
Compatibilité des classements Affecte l’exécution de requêtes distribuées sur les serveurs liés. Si cette option est définie truesur , SQL Server part du principe que tous les caractères du serveur lié sont compatibles avec le serveur local, en ce qui concerne le jeu de caractères et la séquence de classement (ou l’ordre de tri). SQL Server peut alors envoyer au fournisseur des comparaisons sur les colonnes de caractères. Si cette option n'est pas activée, SQL Server compare toujours les colonnes de caractères en local.

Cette option ne doit être définie que si la source de données correspondant au serveur lié possède le même jeu de caractères et respecte le même ordre de tri que le serveur local.
nom du classement Spécifie le nom du classement utilisé par la source de données distante si le classement distant est utilisé et que la source de données n’est true pas une source de données SQL Server. Le nom doit être l'un des classements pris en charge par SQL Server.

Utilisez cette option lors d'un accès à une source de données OLE DB autre que SQL Server, mais dont le classement correspond à l'un des classements de SQL Server.

Le serveur lié doit prendre en charge un classement unique utilisable pour toutes les colonnes du serveur. Ne définissez pas cette option si le serveur lié prend en charge plusieurs classements dans une source de données unique ou si le classement du serveur lié ne correspond peut-être pas à l'un des classements de SQL Server.
délai d’expiration de connexion Spécifie la valeur de délai d’expiration en secondes pour la connexion à un serveur lié.

Si 0, le paramètre de délai d’expiration de connexion utilise la valeur par défaut configurée pour le remote login timeout (s) paramètre. La valeur par défaut pour remote login timeout (s) est 10.

Vous pouvez afficher ce paramètre à partir de l’affichage sys.configurations catalogue avec la requête suivante : SELECT name, value_in_use FROM sys.configurations WHERE name like 'remote login timeout (s)';.
accès aux données Active ou désactive un serveur lié pour l'accès des requêtes distribuées. Ne peut être utilisé que pour sys.server les entrées ajoutées via sp_addlinkedserver.
dist Serveur de distribution.
name Spécifie le nom de l’objet serveur lié.

La modification du nom est reflétée dans la valeur retournée par la name colonne de l’affichage sys.servers catalogue, sans affecter la source de données distante.
chaîne de fournisseur Spécifie la chaîne OLE DB qui identifie la source d’une connexion de serveur lié.

La modification de chaîne du fournisseur est reflétée dans la valeur retournée par la provider_string colonne de l’affichage sys.servers catalogue.
Validation du schéma différé Détermine si le schéma des tables distantes est case activée ed.

Si true, ignorez le schéma case activée ing de tables distantes au début de la requête.
bistrot Publisher.
délai d’expiration de requête Spécifie la valeur de délai d’expiration pour les requêtes sur un serveur lié.

Si 0, utilisez la sp_configure valeur par défaut.
rpc Active RPC à partir du serveur donné.
rpc out Active RPC vers le serveur donné.
sub Abonné.
d’arroseur à pré-action Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
utiliser le classement distant Détermine si le classement d’une colonne distante ou d’un serveur local est utilisé.

Si true, le classement des colonnes distantes est utilisé pour les sources de données SQL Server et le classement spécifié dans le nom de classement est utilisé pour les sources de données non-SQL Server. Il s’agit de la valeur par défaut.

Si false, les requêtes distribuées utilisent toujours le classement par défaut du serveur local, tandis que le nom du classement et le classement des colonnes distantes sont ignorés.
promotion des transactions de processus distants Utilisez cette option pour protéger les actions d'une procédure de serveur à serveur par le biais d'une transaction MS DTC (Microsoft Distributed Transaction Coordinator). Lorsque cette option est true (ou on), l’appel d’une procédure stockée distante démarre une transaction distribuée et inscrit la transaction avec MS DTC. L'instance de SQL Server appelant la procédure stockée distante constitue l'élément créateur de la transaction et qui contrôle l'exécution jusqu'à son terme. Lorsqu’une instruction COMMIT TRANSACTION ou ROLLBACK TRANSACTION ultérieure est émise pour la connexion, l’instance de contrôle demande à MS DTC de gérer l’achèvement de la transaction distribuée sur les ordinateurs impliqués.

Une fois qu’une transaction distribuée Transact-SQL a été démarrée, les appels de procédure stockée distante peuvent être effectués vers d’autres instances de SQL Server qui ont été définies en tant que serveurs liés. Les serveurs liés sont tous inscrits dans la transaction distribuée Transact-SQL, et MS DTC garantit que la transaction est terminée sur chaque serveur lié.

Si cette option est définie false sur (ou off), une transaction locale n’est pas promue en transaction distribuée lors de l’appel d’un appel de procédure distante sur un serveur lié.

Si avant d’effectuer un appel de procédure serveur à serveur, la transaction est déjà une transaction distribuée, cette option n’a aucun effet. L’appel de procédure sur le serveur lié s’exécute sous la même transaction distribuée.

Si aucune transaction n’est active dans la connexion avant d’effectuer un appel de procédure serveur à serveur, cette option n’a aucun effet. La procédure s'exécute ensuite sur le serveur lié sans transactions actives.

La valeur par défaut de cette option est true (ou on).

[ @optvalue = ] N’optvalue'

Spécifie si le @optname doit être activé (trueouon), ou désactivé ( ou off).false @optvalue est nvarchar(128), sans valeur par défaut.

  • Pour les options de délai d’expiration de connexion et de délai d’attente de requête, @optvalue peut être un entier non négatif.

  • Pour l’option nom de classement, @optvalue peut être un nom de classement ou NULL.

  • Pour l’option nom , @optvalue peut être une chaîne qui représente le nouveau nom de la connexion de serveur lié.

  • Pour l’option de chaîne de fournisseur, @optvalue peut être une chaîne ou NULL, représentant la nouvelle source OLE DB de la connexion de serveur lié.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

Si l’option compatible classement est définie truesur , le nom du classement est automatiquement défini sur NULL.

Si le nom du classement est défini sur une valeur non null, le classement compatible est automatiquement défini sur false.

Autorisations

Nécessite une autorisation ALTER ANY LINKED SERVER sur le serveur.

Exemples

L’exemple suivant configure un serveur lié correspondant à une autre instance de SQL Server, SEATTLE3pour qu’il soit compatible avec l’instance locale de SQL Server.

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

L’exemple suivant renomme la connexion du serveur lié à partir de PRODVM01\ProdSQL01LinkToProdSQL01.

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