Erstellen von CLR-Triggern
Gilt für: SQL Server
Sie können ein Datenbankobjekt in SQL Server erstellen, das in einer Assembly programmiert ist, die in der Microsoft .NET Framework Common Language Runtime (CLR) erstellt wurde. Datenbankobjekte, die das reichhaltige Programmiermodell nutzen können, das von der CLR (Common Language Runtime) bereitgestellt wird, sind z. B. DML-Trigger, DDL-Trigger, gespeicherte Prozeduren, Funktionen, Aggregatfunktionen und Typen.
Das Erstellen eines CLR-Triggers (DML oder DDL) in SQL Server umfasst folgende Schritte:
Definieren des Triggers als Klasse in einer von .NET Framework unterstützten Sprache. Weitere Informationen zum Programmieren von Triggern in der CLR finden Sie unter CLR-Trigger. Kompilieren Sie dann die Klasse, um eine Assembly im .NET Framework zu erstellen, indem Sie den entsprechenden Sprach-Compiler verwenden.
Registrieren der Assembly in SQL Server mithilfe der CREATE ASSEMBLY-Anweisung. Weitere Informationen zum Arbeiten mit Assemblys in SQL Server finden Sie unter Assemblies (Datenbank-Engine).
Erstellen Sie den Trigger, der auf die registrierte Assembly verweist.
Hinweis
Bei der Bereitstellung eines SQL Server-Projekts in Microsoft Visual Studio wird eine Assembly in der Datenbank registriert, die für das Projekt angegeben wurde. Bei der Bereitstellung des Projekts werden in der Datenbank auch CLR-Trigger für alle Methoden erstellt, die mit dem SqlTrigger -Attribut versehen sind. Weitere Informationen finden Sie unter Deploying CLR Database Objects.
Hinweis
Die Funktion zum Ausführen von CLR-Code ist in SQL Server standardmäßig deaktiviert. Sie können Datenbankobjekte erstellen, ändern und löschen, die auf verwaltete Codemodule verweisen, aber diese Verweise werden in SQL Server nur dann ausgeführt, wenn die Option clr aktiviert mit sp_configure (Transact-SQL) aktiviert wurde.
So erstellen, ändern oder löschen Sie eine Assembly
So erstellen Sie einen CLR-Trigger
Weitere Informationen
DML-Trigger
Programmierkonzepte für die Common Language Runtime (CLR)-Integration
Datenzugriff von CLR-Datenbankobjekten aus