sp_serveroption (Transact-SQL)
Définit les options de serveur pour les serveurs distants et les serveurs liés.
Syntaxe
sp_serveroption [@server = ] 'server'
,[@optname = ] 'option_name'
,[@optvalue = ] 'option_value' ;
Arguments
[ @server = ] 'server'
Nom du serveur pour lequel l'option doit être définie. server est de type sysname et n'a pas de valeur par défaut.[ @optname = ] 'option_name'
Option à définir pour le serveur spécifié. option_name est de type varchar(35) et n'a pas de valeur par défaut. option_name peut prendre l'une des valeurs suivantes.Valeur
Description
collation compatible
Concerne l'exécution des requêtes distribuées sur les serveurs liés. Si la valeur de cette option est true, SQL Server considère que tous les caractères du serveur lié sont compatibles avec le serveur local, en matière de jeu de caractères et d'ordre de classement (ou 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.
collation name
Spécifie le nom du classement utilisé par la source de données distante si use remote collation est de type true et si la source de données n'est 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.
connect timeout
Valeur du délai d'expiration (en secondes) de la connexion à un serveur lié.
Si la valeur est 0, utilisez la valeur par défaut de sp_configure.
data access
Autorise ou non un serveur lié à avoir accès aux requêtes distribuées. Cette option ne peut être utilisée que pour les entrées sys.server ajoutées par l'intermédiaire de sp_addlinkedserver.
dist
Serveur de distribution.
lazy schema validation
Détermine si le schéma des tables distantes doit être vérifié.
Si la valeur est true, la vérification du schéma des tables distantes est ignorée au début de la requête.
pub
Serveur de publication.
query timeout
Valeur du délai d'expiration des requêtes par rapport à un serveur lié.
Si la valeur est 0, utilisez la valeur par défaut de sp_configure.
rpc
Active RPC à partir du serveur donné.
rpc out
Active RPC vers le serveur donné.
sub
Abonné.
system
Identifié à titre d'information uniquement. Non pris en charge. La compatibilité future n'est pas garantie.
use remote collation
Détermine si le classement d'une colonne distante ou d'un serveur local doit être utilisé.
Si la valeur est true, le classement des colonnes distantes est utilisé pour les sources de données SQL Server, tandis que le classement spécifié dans collation name est utilisé pour les sources de données autres que SQL Server.
Si la valeur est false, les requêtes distribuées utilisent toujours le classement par défaut du serveur local, tandis que collation name et le classement des colonnes distantes sont ignorés. La valeur par défaut est false. (La valeur false est compatible avec la sémantique de classement utilisée dans SQL Server 7.0.)
remote proc transaction promotion
Cette option permet de 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 a la valeur 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 qui appelle la procédure stockée distante constitue l'élément créateur de la transaction et contrôle l'exécution de la transaction jusqu'à son terme. Lorsqu'une instruction COMMIT TRANSACTION ou ROLLBACK TRANSACTION est ensuite émise pour la connexion, l'instance de contrôle demande à MS DTC de gérer jusqu'à son terme l'exécution de la transaction distribuée sur tous les ordinateurs concernés.
Une fois qu'une transaction distribuée Transact-SQL a démarré, des appels de procédures stockées distantes peuvent être effectués envers 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 exécutée jusqu'à son terme sur chaque serveur lié.
Si cette option a la valeur FALSE (ou OFF), une transaction locale ne sera pas promue en transaction distribuée lors de l'exécution d'un appel de procédure distante sur un serveur lié.
Si, avant d'exécuter un appel de procédure de serveur à serveur, la transaction est déjà une transaction distribuée, cette option n'a pas effet. L'appel de procédure sur le serveur lié s'exécutera sous la même transaction distribuée.
Si, avant d'exécuter un appel de procédure de serveur à serveur, aucune transaction n'est active dans la connexion, cette option n'a pas 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 =] 'option_value'
Spécifie si option_name doit être activé (TRUE ou on) ou désactivé (FALSE ou off). option_value est de type varchar(10) et n'a pas de valeur par défaut.option_value peut être un entier non négatif pour les options connect timeout et query timeout. Pour l'option collation name, l'argument option_value peut être un nom de classement ou une valeur NULL.
Valeurs du code de retour
0 (succès) ou 1 (échec)
Notes
Si l'option collation compatible prend la valeur TRUE, collation name prend automatiquement la valeur NULL. Si collation name a une valeur non NULL, collation compatible prend automatiquement la valeur FALSE.
Autorisations
Nécessite une autorisation ALTER ANY LINKED SERVER sur le serveur.
Exemple
L'exemple suivant configure un serveur lié correspondant à une autre instance de SQL Server, SQL Server, de façon à ce qu'il soit compatible avec le classement de l'instance locale de SQL Server.
USE master;
EXEC sp_serveroption 'SEATTLE3', 'collation compatible', 'true';