Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 do banco de dados diferente do procedimento armazenado ou da 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 ou função armazenado seja executado no contexto dessa conexão, juntamente com sua transação, SET opções 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, você deve usar a palavra-chave da cadeia de conexão "conexão de contexto", como no exemplo abaixo:
[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 versus contexto
Descreve as diferenças entre conexões normais e de contexto.
Restrições em conexões regulares e de contexto
Descreve as restrições em conexões normais e de contexto.