Freigeben über


Datenzugriff von CLR-Datenbankobjekten

Gilt für:SQL Server

Eine CLR-Routine (Common Language Runtime) kann problemlos auf Daten zugreifen, die in der Instanz von SQL Server gespeichert sind, in der sie ausgeführt wird, und daten, die in Remoteinstanzen gespeichert sind. Der Benutzerkontext, in dem der Code ausgeführt wird, bestimmt die spezifischen Daten, auf die die Routine zugreifen kann. Zugreifen auf Daten aus einem CLR-Datenbankobjekt mithilfe des .NET Framework-Datenanbieters für SQL Server, auch als SqlClientbezeichnet. Dies ist derselbe Anbieter, der von Entwicklern verwendet wird, die auf SQL Server-Daten aus verwalteten Client- und Middle-Tier-Anwendungen zugreifen. Aus diesem Gründen können Sie Ihr Wissen über ADO.NET und SqlClient in Client- und Middle-Tier-Anwendungen verwenden.

Benutzerdefinierte Typmethoden und benutzerdefinierte Funktionen dürfen standardmäßig keinen Datenzugriff ausführen. Sie müssen die DataAccess Eigenschaft von SqlMethodAttribute oder SqlFunctionAttribute auf DataAccessKind.Read festlegen, um den schreibgeschützten Datenzugriff von benutzerdefinierten Typmethoden oder benutzerdefinierten Funktionen zu ermöglichen. Datenänderungsvorgänge sind von UDTs oder benutzerdefinierten Funktionen nicht zulässig und lösen Ausnahmen zur Ausführungszeit aus, wenn versucht wird.

In diesem Abschnitt werden nur die spezifischen Unterschiede der Funktionen und Verhaltensweisen beim Datenzugriff von einem CLR-Datenbankobjekt ausgehend beschrieben. Weitere Informationen zu Funktionen und Funktionalität von ADO.NET finden Sie in der ADO.NET-Dokumentation im .NET Framework SDK.

In der folgenden Tabelle sind die Artikel in diesem Abschnitt aufgeführt.

Artikel Beschreibung
Kontextverbindung Beschreibt die Kontextverbindung zu SQL Server.
Identitätswechsel und Anmeldeinformationen für Verbindungen Beschreibt die Annahme der Identität von Verbindungen und Verbindungsanmeldeinformationen.
sql Server-in-process-spezifische Erweiterungen für ADO.NET Erläutert die prozessspezifischen SqlPipe, SqlContext, SqlTriggerContextund SqlDataRecord -Objekte.
CLR-Integration und -Transaktionen Beschreibt, wie das neue Transaktionsframework im System.Transactions-Namespace in ADO.NET- und SQL Server CLR-Integration integriert wird.
XML-Serialisierung auf Grundlage von CLR-Datenbankobjekten Erläutert, wie XML-Serialisierungsszenarien von CLR-Datenbankobjekten in SQL Server aktiviert werden.