# Trigger in MS-SQL



## Landei (2. Jun 2009)

Hallo Leute,

ich brauche wegens Rückwärtskompatibilität einem Trigger, aber mit PL-SQL hatte ich noch nie viel am Hut. Die Situation:

Bei Insert oder Update möchte ich zwei Werte auslesen. Der erste Wert ist ein Fremdschlüssel für eine andere Tabelle, dort möchte ich den zweiten Wert reinschreiben.

Soweit bin ich gekommen, kein Fehler, läuft aber auch nicht:

```
CREATE TRIGGER myTrigger on Tabelle1
FOR INSERT,UPDATE AS

DECLARE @foreignKey nCHAR(16)
DECLARE @aValue nCHAR(16)
SELECT @foreignKey = foreignKeyColumn, 
       @aValue=valueColumn
FROM inserted

UPDATE Tabelle2 SET valueColumn = @aValue
WHERE (id=@foreignKey)
```

Beim Löschen möchte ich wieder mit dem Fremdschlüssel auf die andere Tabelle gucken und dort den zweiten Wert "ausnullen".

Wäre für jede Hilfe dankbar...


----------



## maki (2. Jun 2009)

> mit PL-SQL hatte ich noch nie viel am Hut


Der MS SQL Server unterstützt das M$ hauseigene TSQL, PL/SQL wäre Oracle 

Welche Fehlermeldung zeigt er dir denn?


----------



## Landei (2. Jun 2009)

Keine Fehlermeldung, aber passieren tut auch nix :-[


----------



## maki (3. Jun 2009)

Du kannst mit

```
PRINT 'key =' +@foreignKey
```
ausgaben erzeugen, die du im Query Analyzer ansehen kannst.


----------

