Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Trigger auf MSSQL 2005 wenn Spalte enthält Wert

Empfohlene Antworten

Veröffentlicht

Hintergrund:

MSSQL Server 2005 - Standard Edition

Ich hab eine Tabelle mit 5 Spalten. In der Spalte 5 stehen nur die Werte 0 oder 2.

Ich brauch jetzt einen Trigger der im Falle eines INSERTS eines Datensatzes prüft, welcher Wert in Spalte 5 steht. Je nachdem, ob 0 oder 2, sollen unterschiedliche UPDATES auf einer anderen Tabelle durchgeführt werden.

Ich habe leider kaum Erfahrung mit Triggern und kenne kaum mehr als die Grundstruktur.

Mit Hilfe von Google bin ich zum folgendenden SQL-Script bekommen, allerdings wirft mir dies eine Exception

"Meldung 156, Ebene 15, Status 1, Prozedur treffer, Zeile 9

Falsche Syntax in der Nähe des 'WHEN'-Schlüsselwortes."

**********

Beispiel:

CREATE TRIGGER treffer

ON MyTable

AFTER INSERT

WHEN MyTable.Spalte5=2

BEGIN

UPDATE DieseTabelle

SET

DieseTabelle.Flag = 'y'

WHERE

DieseTabelle.ID = MyTable.ID;

END

GO

***********

Hi,

ich bin mir jetzt zwar nicht ganz sicher wie das bei Triggern ist, aber probier mal...:

**********

Beispiel:

CREATE TRIGGER treffer

ON MyTable

AFTER INSERT

CASE WHEN MyTable.Spalte5=2 then

BEGIN

UPDATE DieseTabelle

SET

DieseTabelle.Flag = 'y'

WHERE

DieseTabelle.ID = MyTable.ID;

END

END

GO

***********

Wie gesagt, ist auf die Schnelle und ohne Gewähr :)

Für Verzweigungen innhalb von SQL Statements brauchst du immer ein CASE WHEN .... THEN .... (ELSE) ... END.

Vielleicht hilfts.

Hab mein Script jetzt mit CASE umgebaut. Leider bekomme ich aber immer noch die gleiche Fehlermeldung:

Meldung 156, Ebene 15, Status 1, Prozedur treffer, Zeile 9

Falsche Syntax in der Nähe des 'CASE'-Schlüsselwortes.

Kennst du eine Website oder eine Art Tutorial für Trigger? Google hat mir bis jetzt noch nicht weitergeholfen...:(

Hi,

also spontan fällt mir da auch nur das MSDN ein. Weiß aber nicht ob das in dem Fall hilft!

Wie gesagt, ob sowas überhaupt so funktioniert, weiß ich nicht. Müsste ich selbst erst einmal nachlesen.

Danke für die Hilfe. Mit ein bisschen lesen im MSDN hab ich jetzt was ich wollte. :)

Sollte jemand das gleiche Problem haben, mein SQL Script für die Erstellung des Triggers:

ALTER TRIGGER trig

ON testtbl

AFTER INSERT

AS

DECLARE @match tinyint, @match_ref varchar(32)

SELECT @match=spalte1, @match_ref=spalte2 FROM testtbl;

IF (@match = 2)

UPDATE [datenbank].[schema].[tabelle]

SET

flag1 = true

WHERE

ID = @match_ref

ELSE

UPDATE [datenbank].[schema].[tabelle]

SET

flag1 = false

WHERE

ID = @match_ref

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.