Forums Neueste Beiträge
 

Trigger zur Vermeidung von Rechnungsdoppeln

21/11/2007 - 14:56 von Patrick Pohlmann | Report spam
Hallo Zusammen,

ich möchte über einen Trigger vermeiden, dass eine Rechnung mehrfach in die
Datenbank eingegeben werden kann.

Ich kannd as nicht über die Identitàt des Feldes Rechnungsnummer lösen, weil
zum einen bereits eine vielzahl von doppelten Rechnungen bestehen und zum
anderen das auch in bestimmten Fàllen so sein soll. Ich habe also folgende
Idee.

ich erstelle einen Trigger der bei Eingabe eines Datensatzes prüft ob es die
selbe Rechnungsnummer mit dem selben Rechnungsdatum für die selbe SubjektNr
(Kunde) schon gibt.

Also so:

SELECT SubjektNr, Rechungsnummer, Rechnungsdatum, COUNT(VorgangNr) AS
Anzahl, RechnungsartID
FROM dbo.OS_Rechnungen
GROUP BY SubjektNr, Rechungsnummer, Rechnungsdatum, RechnungsartID
HAVING (COUNT(VorgangNr) > @VorgangNr) AND (RechnungsartID <> 3) AND
(Rechungsnummer = '@Rechungsnummer') AND (Rechnungsdatum =
'@Rechungsdatum', )

Wenn sich mit diesen Daten was findet soll die Meldung "Die selbe Rechnung
besteht bereits" ausgegeben werden und Insert verhindert werden.

Nun kenne ich mich mit Triggern leider garnicht aus. Kann mir jemand sagen
wie ich das am besten hinbekomme?

Wie bekomme ich die Werte für die Variablen? Wie verhindere ich Insert?

Danke für Eure Hilfe.

Grüße

Patrick!
 

Lesen sie die antworten

#1 Frank Kalis
21/11/2007 - 15:25 | Warnen spam
"Patrick Pohlmann" wrote:

ich mchte ber einen Trigger vermeiden, dass eine Rechnung mehrfach in die
Datenbank eingegeben werden kann.

Ich kannd as nicht ber die Identitt des Feldes Rechnungsnummer lsen, weil
zum einen bereits eine vielzahl von doppelten Rechnungen bestehen und zum
anderen das auch in bestimmten Fllen so sein soll. Ich habe also folgende
Idee.

ich erstelle einen Trigger der bei Eingabe eines Datensatzes prft ob es die
selbe Rechnungsnummer mit dem selben Rechnungsdatum fr die selbe SubjektNr
(Kunde) schon gibt.

Also so:

SELECT SubjektNr, Rechungsnummer, Rechnungsdatum, COUNT(VorgangNr) AS
Anzahl, RechnungsartID
FROM dbo.OS_Rechnungen
GROUP BY SubjektNr, Rechungsnummer, Rechnungsdatum, RechnungsartID
HAVING (COUNT(VorgangNr) > @VorgangNr) AND (RechnungsartID <> 3) AND
(Rechungsnummer = '@Rechungsnummer') AND (Rechnungsdatum =
'@Rechungsdatum', )

Wenn sich mit diesen Daten was findet soll die Meldung "Die selbe Rechnung
besteht bereits" ausgegeben werden und Insert verhindert werden.

Nun kenne ich mich mit Triggern leider garnicht aus. Kann mir jemand sagen
wie ich das am besten hinbekomme?

Wie bekomme ich die Werte fr die Variablen? Wie verhindere ich Insert?




Schau Dir mal das Beispiel 3. hier
http://www.insidesql.de/beitraege/a...ieren.html an
Frank Kalis
Microsoft SQL Server MVP
Webmaster: http://www.insidesql.de

Ähnliche fragen