Possibilité de définir le timeout d'attente de requête SQL Server distant par requête pour les appels de server lié?

Pour les servers liés, je vois comment il est possible de changer la configuration de "timeout de requête distant" pour faire allusion à un appel à un server lié qui devrait être terminé ou annulé dans la valeur de timeout d'attente spécifique. Cela semble fonctionner à travers le moteur SQL Server – est-il possible de modifier l'indicateur dans une procédure stockée, de sorte qu'une procédure stockée spécifique puisse fonctionner plus longtime si nécessaire, mais tous les autres SPROC sans avertissement expireront plus rapidement s'ils fonctionnent longtime ?

Le timeout d'attente de requête liée est abordé ici: http://support.microsoft.com/kb/314530

Exemple de code pour définir le timeout d'attente en 3 secondes est ici:

sp_configure 'remote query timeout', 3 go reconfigure with override go 

Pas vraiment conseillé de le changer dans une procédure stockée. remote query timeout est un paramètre de server global lorsqu'il est modifié avec sp_configure . Par conséquent, sa modification dans une procédure stockée affecte toutes les requêtes distantes pour tous les servers liés sur le server.

De plus, l'exécution de sp_configure nécessite l'autorisation du server ALTER SETTINGS , qui est généralement réservé à sysadmin et serveradmin . L'octroi de ces permissions à un count d'access aux données poserait un problème de security, car il risquerait d'entraîner votre server vers le bas avec les commands sp_configure .

Ce que je suggère est de créer un deuxième server lié avec un nom différent que vous utiliseriez avec cette seule procédure stockée. Vous pouvez, dans SSMS, configurer un timeout d'attente de requête pour chaque server lié individuel . L'ajout d'un deuxième server lié vous permet d'interroger le même server avec différents parameters de client de server lié. Vous devrez peut-être créer un CNAME DNS pour y parvenir si vous utilisez des servers liés SQL Server simples.