Compartilhar via


Conexão de contexto

Aplica-se: SQL Server

O problema de acesso a dados internos é um cenário bastante comum. Ou seja, você deseja acessar o mesmo servidor no qual sua função ou seu procedimento armazenado CLR (Common Language Runtime) está em execução. Uma opção é criar uma conexão usando System.Data.SqlClient.SqlConnection, especificar uma cadeia de conexão que aponte para o servidor local e abrir a conexão. Isso exige a especificação de credenciais para fazer logon. A conexão está em uma sessão de banco de dados diferente do procedimento armazenado ou função, pode ter opções SET diferentes, está em uma transação separada, não vê suas tabelas temporárias e assim por diante. Se código da função ou do procedimento armazenado gerenciado estiver em execução no processo do SQL Server, isso ocorrerá porque alguém se conectou a esse servidor e executou uma instrução SQL para invocá-lo. Você provavelmente deseja que o procedimento armazenado ou a função seja executado no contexto dessa conexão, juntamente com sua transação, opções SET e assim por diante. Isto é chamado de conexão de contexto.

A conexão de contexto permite executar instruções Transact-SQL no mesmo contexto em que seu código foi invocado pela primeira vez. Para obter a conexão de contexto, use a palavra-chave de cadeia de conexão "context connection", como no exemplo a seguir:

[C#]

using(SqlConnection connection = new SqlConnection("context connection=true"))   
{  
    connection.Open();  
    // Use the connection  
}  

[Visual Basic]

Using connection as new SqlConnection("context connection=true")  
    connection.Open()  
    ' Use the connection  
End Using  
  

Nesta seção

Conexões regulares vs. de contexto
Descreve as diferenças entre conexões normais e de contexto.

Restrições em conexões comuns e de contexto
Descreve as restrições em conexões normais e de contexto.