AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Trigger-Problem

Ein Thema von onkelmehli · begonnen am 25. Feb 2008 · letzter Beitrag vom 25. Feb 2008
Antwort Antwort
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#1

Trigger-Problem

  Alt 25. Feb 2008, 12:26
Datenbank: MS SQL-Server • Version: 2005 • Zugriff über: ADO
Hallo,

kann man innerhalb eines Triggers ein Insert auf die gleiche Tabelle machen, so dass der Trigger erneut ausgeführt wird, oder geht das nicht ?

Bsp.:

SQL-Code:
CREATE TRIGGER [dbo].[I_Positionen]
   ON [dbo].[Positionen]
   AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
IF INSERTED.TYP = 'RE'
BEGIN
           INSERT INTO [dbo].[Positionen] ([posid], [typ]) VALUES ('2','ST')
END
END
Bei meinen Tests wird zwar dieser Insert gemacht, aber der Trigger wird nicht noch einmal durchlaufen. Woran liegt das oder sollte man dies anders lösen ?


Gruß Matthias
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: Trigger-Problem

  Alt 25. Feb 2008, 12:29
Das ist prinzipbedingt so. *Jedes* Insert löst den Insert-Trigger aus, auch solche, die von dort aus getätigt werden.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Trigger-Problem

  Alt 25. Feb 2008, 12:31
Was bezweckst du damit?
Markus Kinzler
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Trigger-Problem

  Alt 25. Feb 2008, 12:43
@Dax:

Zitat:
Das ist prinzipbedingt so. *Jedes* Insert löst den Insert-Trigger aus, auch solche, die von dort aus getätigt werden.
das heisst doch aber, das er eigentlich erneut den Trigger "abfeuern" müsste oder ? Dies tut er aber nicht.

@mkinzler:

Innerhalb dieses Triggers finden noch Berechnungen statt. Diese berechneten Werte werden in eine andere Tabelle geschrieben (Update).
Nun ist es so, wenn ein bestimmter berechneter Wert kleiner als 0 ist, dann muss dieser Datensatz in diese Tabelle(siehe oben) abgelegt werden, damit erneut berechnet wird. (dieser bestimmte Wert ist nun größer oder gleich 0 und ich bin zufrieden)

Gruß Matthias
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Trigger-Problem

  Alt 25. Feb 2008, 12:50
Aber nicht im geposteten Triggercode
Markus Kinzler
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Trigger-Problem

  Alt 25. Feb 2008, 12:51
nein, das sollte nur als einfaches Beispiel gelten....
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#7

Re: Trigger-Problem

  Alt 25. Feb 2008, 13:01
Dann hab ich mich einfach verlesen - scheinbar stellt MSSQL wieder mal die "andere" Art, etwas zu tun, dar. Postgres zum Beispiel feuert den Trigger erneut.. So wie es sich eigentlich auch gehört.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#8

Re: Trigger-Problem

  Alt 25. Feb 2008, 14:13
Zitat von Dax:
scheinbar stellt MSSQL wieder mal die "andere" Art, etwas zu tun, dar. Postgres zum Beispiel feuert den Trigger erneut.. So wie es sich eigentlich auch gehört.
Auch MSSQL macht das so. Wenn man es so will. Denn es kann ja sein, das es dann eine Endlosrekursion gibt... Insofern ist MSSQL hier besser, als manch anderes DBMS

Schau mal in den Einstellungen nach 'rekursive Trigger'...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#9

Re: Trigger-Problem

  Alt 25. Feb 2008, 14:17
Zitat:
Schau mal in den Einstellungen nach 'rekursive Trigger'...
welche Einstellungen meinst du ?
  Mit Zitat antworten Zitat
onkelmehli

Registriert seit: 8. Mär 2006
119 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Trigger-Problem

  Alt 25. Feb 2008, 14:34
ok habs gefunden, damit funktioniert es. Danke !

Gruß Matthias
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz