none
CLR Integration und Trigger RRS feed

  • Frage

  • Hallo.

    Ich habe eine Datenbank von Windows Server 2003 (32bit) / SQL Server 2005 auf Windows Server 2008 (64bit) / SQL Server 2008 umgezogen. Jetzt bekomme ic´h meine Trigger leider nicht zum Laufen. CLR Integration ist auf true gestellt, die Trigger (Insert- und Delete-Trigger) sind auch alle da. Aber bei einem Insert oder Delete werden die Trigger nicht ausgelöst. Es wird auch keine sinnvolle Fehlermeldung ausgegeben.

    Muss man für die Trigger-Ausführung noch spezielle Rechte freischalten im SQL Server 2008? Denn im SQL Server 2005 hat in gleicher Konfiguration alles wunderbar funktioniert.

    LG Kathrin

    Freitag, 16. Juli 2010 09:06

Antworten

  • Hallo Kathrin,

    wenn Du schreibst, die Trigger sind alle da, was genau meinst Du damit.

    Damit ein CLR Trigger funktioniert muß zum einen die Assembly mit dem Trigger eingebunden sein,
    d. h. im SSMS unter Programmierbarkeit->Assemblies erscheinen.

    Du solltest die Assemblies mit Visual Studio 2008 und .NET Framework 3.5
    neu kompilieren und verteilen.

    Zudem muß der T-SQL Stub für den Trigger existieren,
    der sich unter Trigger abrufen lassen sollte in der Form:

    CREATE TRIGGER TR_Tabelle_CLR
    ON dbo.Tabelle FOR INSERT, UPDATE, DELETE
    AS
    EXTERNAL NAME Namespace.Triggername
    
    
    

    da er die Verbindung zwischen CLR Methode und dem Trigger herstellt.

    Der Datenbank-Kompatibilitätsgrad sollte auf 100 stehen, siehe Hinweis bei CLR-Trigger

    Gruß Elmar

    Montag, 19. Juli 2010 09:19