Поделиться через


Контекстное соединение (ADO.NET)

Обновлен: November 2007

Проблема внутреннего доступа к данным встречается довольно часто. Речь идет о тех ситуациях, когда необходимо получить доступ к тому же серверу, на котором выполняется конкретная хранимая процедура или функция среды CLR. Один из вариантов состоит в том, чтобы создать соединение с использованием SqlConnection, задать строку соединения, в которой указан локальный сервер, и открыть соединение. В этом случае требуется указать учетные данные для регистрации. К тому же соединение устанавливается в другом сеансе базы данных по сравнению с хранимой процедурой или функцией, оно может иметь другие параметры SET, оно находится в отдельной транзакции, не позволяет обнаруживать используемые временные таблицы и т. д. Если управляемая хранимая процедура или функция выполняется в процессе SQL Server, причина этого состоит в том, что какой-то пользователь подключился к этому серверу и выполнил инструкцию SQL для вызова соответствующего кода. В этой ситуации можно обеспечить выполнение хранимой процедуры или функции в контексте данного соединения вместе с осуществляемой в нем транзакцией, параметрами SET и т. д. В этом состоит так называемое контекстное соединение.

Контекстное соединение позволяет выполнять инструкции Transact-SQL в том же контексте, в каком первоначально был вызван конкретный код. Более подробные сведения см. в электронной документации по SQL Server для используемой версии SQL Server.

SQL Server 2005

SQL Server 2008

Контекстное соединение

Контекстное соединение

См. также

Другие ресурсы

Создание объектов SQL Server 2005 в управляемом коде