Partager via


Connexion contextuelle

S'applique à :SQL Server

Le problème d'accès aux données interne est un scénario relativement courant. Autrement dit, vous souhaitez accéder au même serveur que celui sur lequel votre fonction ou procédure stockée CLR s'exécute. Une option consiste à créer une connexion à l’aide de System.Data.SqlClient.SqlConnection, spécifier une chaîne de connexion qui pointe vers le serveur local et ouvrir la connexion. Cette méthode nécessite la spécification des informations d’identification pour la connexion. La connexion se trouve dans une session de base de données différente de la procédure stockée ou de la fonction, elle peut avoir des options SET différentes, elle se trouve dans une transaction distincte, elle ne voit pas vos tables temporaires, et ainsi de suite.

Si votre procédure stockée managée ou votre code de fonction s’exécute dans le processus SQL Server, c’est parce que quelqu’un est connecté à ce serveur et a exécuté une instruction SQL pour l’appeler. Vous souhaitez probablement que la procédure stockée ou la fonction s’exécute dans le contexte de cette connexion, ainsi que sa transaction, ses options de SET, et ainsi de suite. Une telle connexion est appelée connexion du contexte, ou connexion contextuelle.

La connexion contextuelle permet d'exécuter des instructions Transact-SQL dans le même contexte que celui où votre code a été appelé en premier lieu. Pour obtenir la connexion contextuelle, vous devez utiliser le mot clé de chaîne de connexion « context connection », comme dans l’exemple suivant.

  • C#
  • Visual Basic .NET
using(SqlConnection connection = new SqlConnection("context connection=true"))
{
    connection.Open();
    // Use the connection
}

Dans cette section

Article Description
connexions de contexte et connexions régulières Décrit les différences entre les connexions régulières et les connexions contextuelles.
restrictions sur les connexions contextuelles et les connexions régulières Décrit les restrictions sur les connexions régulières et les connexions contextuelles.