Dela via


Kontextanslutning

gäller för:SQL Server

Problemet med intern dataåtkomst är ett ganska vanligt scenario. Det betyder att du vill komma åt samma server som den gemensamma språkkörningsproceduren (CLR) lagrade proceduren eller funktionen körs på. Ett alternativ är att skapa en anslutning med System.Data.SqlClient.SqlConnection, ange en anslutningssträng som pekar på den lokala servern och öppna anslutningen. Den här metoden kräver att du anger autentiseringsuppgifter för att logga in. Anslutningen är i en annan databassession än den lagrade proceduren eller funktionen, den kan ha olika SET alternativ, den är i en separat transaktion, den ser inte dina tillfälliga tabeller och så vidare.

Om den hanterade lagrade proceduren eller funktionskoden körs i SQL Server-processen beror det på att någon som är ansluten till servern och kör en SQL-instruktion för att anropa den. Du vill förmodligen att den lagrade proceduren eller funktionen ska köras i samband med anslutningen, tillsammans med dess transaktion, SET alternativ och så vidare. Detta kallas kontextanslutning.

Med kontextanslutningen kan du köra Transact-SQL-instruktioner i samma kontext som koden anropades från början. För att kunna hämta kontextanslutningen måste du använda nyckelordet "kontextanslutning" för anslutningssträngen, som i följande exempel.

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

I det här avsnittet

Artikel Beskrivning
Kontextanslutningar jämfört med vanliga anslutningar Beskriver skillnaderna mellan vanliga anslutningar och kontextanslutningar.
Begränsningar för kontextanslutningar och vanliga anslutningar Beskriver begränsningarna för regelbundna anslutningar och kontextanslutningar.