Freigeben über


Data Access from CLR Database Objects

Gilt für: SQL Server

Eine CLR-Routine (Common Language Runtime) kann problemlos auf Daten zugreifen, die in der Instanz von Microsoft SQL Server gespeichert sind, in der sie ausgeführt wird, sowie auf Daten, die in Remoteinstanzen gespeichert sind. Auf welche Daten die Routine zugreifen kann, wird durch den Benutzerkontext bestimmt, in dem der Code ausgeführt wird. Zugreifen auf Daten aus einem CLR-Datenbankobjekt mithilfe des .NET Framework-Datenanbieter für SQL Server, auch als SqlClient bezeichnet. 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 nutzen.

Hinweis

Benutzerdefinierten Typmethoden und benutzerdefinierten Funktionen wird nicht ermöglicht, standardmäßig auf Daten zuzugreifen. Sie müssen die DataAccess-Eigenschaft von SqlMethodAttribute oder SqlFunctionAttribute auf DataAccessKind.Read festlegen, um den schreibgeschützten Datenzugriff von benutzerdefinierten Typmethoden (UDT) oder benutzerdefinierten Funktionen zu ermöglichen. Datenänderungsvorgänge von UDTs oder benutzerdefinierten Funktionen ausgehend sind nicht zulässig. Ein solcher Versuch löst zur Ausführungszeit eine Ausnahme aus.

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 Themen dieses Abschnitts aufgeführt.

Kontextverbindung
Beschreibt die Kontextverbindung zu SQL Server.

Identitätswechsel und Anmeldeinformationen für Verbindungen
Beschreibt die Annahme der Identität von Verbindungen und Verbindungsanmeldeinformationen.

Von SQL Server verwendete prozessinterne spezifische Erweiterungen für ADO.NET
Erläutert die prozessspezifischen SqlPipe-, SqlContext-, SqlTriggerContext- und 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.