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


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

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

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

SQL Server 2005

SQL Server 2008

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

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

См. также

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

Creating SQL Server 2005 Objects in Managed Code