Erstellen von CLR-Triggern

Sie können in SQL Server ein Datenbankobjekt erstellen, das in einer Assembly programmiert wird, die in der Microsoft .NET Framework-CLR (Common Language Runtime) 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 die Klasse mithilfe des entsprechenden Sprachcompilers, um eine Assembly in .NET Framework zu erstellen.

  • Registrieren der Assembly in SQL Server mithilfe der CREATE ASSEMBLY-Anweisung. Weitere Informationen zu Assemblys in SQL Server finden Sie unter Assemblys (Datenbank-Engine).

  • Erstellen Sie den Trigger, der auf die registrierte Assembly verweist.

Hinweis

Bei der Bereitstellung eines SQL Server-Projekts in MicrosoftVisual 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, die auf verwaltete Codemodule verweisen, erstellen, ändern oder löschen. Diese Verweise werden jedoch nur dann in SQL Server ausgeführt, wenn die Option clr enabled mithilfe von sp_configure (Transact-SQL)aktiviert wird.

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
Data Access from CLR Database Objects