Einführung in die CLR-Integration in SQL ServerIntroduction to SQL Server CLR Integration

CLR (Common Language Runtime) steht im Mittelpunkt von Microsoft .NET Framework und stellt die Ausführungsumgebung für sämtlichen .NET Framework-Code bereit.The common language runtime (CLR) is the heart of the Microsoft .NET Framework and provides the execution environment for all .NET Framework code. In CLR geschriebener Code wird als verwalteter Code bezeichnet.Code that runs within the CLR is referred to as managed code. CLR stellt verschiedene Funktionen und Dienste für die Programmausführung bereit, unter anderem Just-In-Time-Kompilierung (JIT), Speicherzuordnung und -verwaltung, Erzwingen der Typsicherheit, Ausnahmebehandlung, Threadverwaltung und Sicherheit.The CLR provides various functions and services required for program execution, including just-in-time (JIT) compilation, allocating and managing memory, enforcing type safety, exception handling, thread management, and security.

Mit der von Microsoft SQL Server gehosteten CLR ("CLR-Integration" genannt) können Sie gespeicherte Prozeduren, Trigger, benutzerdefinierte Funktionen, benutzerdefinierte Typen (UDT) und benutzerdefinierte Aggregate in verwaltetem Code erstellen.With the CLR hosted in Microsoft SQL Server (called CLR integration), you can author stored procedures, triggers, user-defined functions, user-defined types, and user-defined aggregates in managed code. Da verwalteter Code vor der Ausführung in systemeigenen Code kompiliert wird, können Sie in manchen Fällen einen erheblichen Leistungsanstieg erreichen.Because managed code compiles to native code prior to execution, you can achieve significant performance increases in some scenarios.

Verwalteter Code kann mithilfe von Codezugriffssicherheit (CAS – Code Access Security), Codelinks und Anwendungsdomänen verhindern, dass Assemblys bestimmte Vorgänge ausführen.Managed code uses Code Access Security (CAS), code links, and application domains to prevent assemblies from performing certain operations. In SQL Server trägt die Verwendung der Codezugriffssicherheit zur Sicherung des verwalteten Codes und zum Schutz des Betriebssystems und des Datenbankservers vor schädigenden Eingriffen bei.SQL Server uses CAS to help secure the managed code and prevent compromise of the operating system or database server.

In diesem Abschnitt sollen die Informationen bereitgestellt werden, die für den Einstieg in das Programmieren mit der CLR-Integration in SQL Server erforderlich sind. Es ist nicht Ziel dieses Abschnitts, das Thema umfassend abzudecken.This section is meant to provide only enough information to get started programming with SQL Server CLR integration, and is not meant to be comprehensive. Weitere ausführliche Informationen finden Sie in der Onlinedokumentation zu SQL Server für die von Ihnen verwendete Version von SQL Server.For more detailed information, see the version of SQL Server Books Online for the version of SQL Server you are using.

SQL Server-DokumentationSQL Server documentation

Aktivieren der CLR-IntegrationEnabling CLR Integration

Die Funktion zur Integration der Common Language Runtime (CLR) ist in Microsoft SQL-Server in der Standardeinstellung deaktiviert und muss aktiviert werden, damit die mithilfe der CLR-Integration implementierten Objekte verwendet werden können.The common language runtime (CLR) integration feature is off by default in Microsoft SQL Server, and must be enabled in order to use objects that are implemented using CLR integration. Um die CLR-Integration mit Transact-SQL zu aktivieren, verwenden Sie Option clr enabled der gespeicherten Prozedur sp_configure wie folgt:To enable CLR integration using Transact-SQL, use the clr enabled option of the sp_configure stored procedure as shown:

sp_configure 'clr enabled', 1  
GO  
RECONFIGURE  
GO  

Sie können die CLR-Integration deaktivieren, indem Sie für die clr enabled-Option 0 festlegen.You can disable CLR integration by setting the clr enabled option to 0. Wenn Sie die CLR-Integration deaktivieren, stoppt SQL Server die Ausführung aller CLR-Routinen und entlädt alle Anwendungsdomänen.When you disable CLR integration, SQL Server stops executing all CLR routines and unloads all application domains.

Weitere ausführliche Informationen finden Sie in der Onlinedokumentation zu SQL Server für die von Ihnen verwendete Version von SQL Server.For more detailed information, see the version of SQL Server Books Online for the version of SQL Server you are using.

SQL Server-DokumentationSQL Server documentation

Bereitstellen einer CLR-AssemblyDeploying a CLR Assembly

Sobald die CLR-Methoden auf dem Testserver getestet und verifiziert wurden, können sie mit einem Bereitstellungsskript auf die Produktionsserver verteilt werden.Once the CLR methods have been tested and verified on the test server, they can be distributed to production servers using a deployment script. Das Bereitstellungsskript kann manuell oder mit SQL Server Management Studio generiert werden.The deployment script can be generated manually, or by using SQL Server Management Studio. Ausführlichere Informationen finden Sie in der-Version SQL Server Dokumentation für die verwendete Version von SQL Server.For more detailed information, see the version of SQL Server documentation for the version of SQL Server you are using.

SQL Server-DokumentationSQL Server documentation

  1. Bereitstellen von CLR-DatenbankobjektenDeploying CLR Database Objects

Sicherheit der CLR-IntegrationCLR Integration Security

Das Sicherheitsmodell der Microsoft SQL Server-Integration in der Common Language Runtime (CLR) von Microsoft .NET Framework verwaltet und sichert den Zugriff zwischen verschiedenen Typen von CLR-Objekten und Nicht-CLR-Objekten, die in SQL Server ausgeführt werden.The security model of the Microsoft SQL Server integration with the Microsoft .NET Framework common language runtime (CLR) manages and secures access between different types of CLR and non-CLR objects running within SQL Server. Diese Objekte können durch eine Transact-SQL-Anweisung oder durch ein anderes, auf dem Server ausgeführtes CLR-Objekt aufgerufen werden.These objects may be called by a Transact-SQL statement or another CLR object running in the server.

Weitere ausführliche Informationen finden Sie in der Onlinedokumentation zu SQL Server für die von Ihnen verwendete Version von SQL Server.For more detailed information, see the version of SQL Server Books Online for the version of SQL Server you are using.

SQL Server-DokumentationSQL Server documentation

Debuggen einer CLR-AssemblyDebugging a CLR Assembly

Microsoft SQL Server stellt Unterstützung für das Debuggen von Transact-SQL und CLR-Objekten (Common Language Runtime) in der Datenbank bereit.Microsoft SQL Server provides support for debugging Transact-SQL and common language runtime (CLR) objects in the database. Das Debuggen funktioniert sprachübergreifend. Benutzer können problemlos von Transact-SQL zu CLR-Objekten wechseln und umgekehrt.Debugging works across languages: users can step seamlessly into CLR objects from Transact-SQL, and vice versa.

Weitere ausführliche Informationen finden Sie in der Onlinedokumentation zu SQL Server für die von Ihnen verwendete Version von SQL Server.For more detailed information, see the version of SQL Server Books Online for the version of SQL Server you are using.

SQL Server-DokumentationSQL Server documentation

Weitere InformationenSee also