Stored Procedure vs. SQL in Tabelle

22/04/2010 - 10:50 von Thomas Schremser | Report spam
Hallo allerseits!

In meiner Datenbank möchte ich einen Mechanismus implementieren um die Daten
nach bestimmten Regeln zu prüfen. Dazu sollen über Nacht eine Reihe von
Abfragen durchgeführt werden, die Fehlerhafte Datensàtze in einer Tabelle
erfassen die dann wiederum über einen Report ausgewertet wird. Eine solche
Abfrage kann z.B. so aussehen:

INSERT INTO err.Fehler
(
FehlerCode,
PersonID,
OrganisationID
)
SELECT
1001 AS FehlerCode,
P.PersonID,
NULL OrganisationID
FROM
stf.PersonStamm P
INNER JOIN stf.AdresseRef R
ON R.PersonID = P.PersonID
INNER JOIN stf.AdresseHistory H
ON H.AdresseID = R.AdresseID
WHERE
R.AdresseArtCode = 'WOHN'
GROUP BY
P.PersonID,
HAVING
COUNT(*) > 1;

In einer eigenen Tabelle sind dann die möglichen Fehlercodes mit einer
Beschreibung gespeichert. Es können dabei ein paar hundert solcher Prüfungen
zusammenkommen.

Nun stellt sich mir die Frage, wo ich den Code dieser Abfragen unterbringen
soll. Zwei Möglichkeiten erscheinen mir praktikabel: für jede Prüfung eine
eigene Stored Procedure oder in der Tabelle mit den Beschreibungen in einer
zusàtzlichen Spalte. Welche Möglichkeit haltet ihr für besser?

TIA

Grüße
Thomas

Any problem in computer science can be solved with another layer
of indirection. But that usually will create another problem.
David Wheeler
 

Lesen sie die antworten

#1 Helmut Woess
22/04/2010 - 13:52 | Warnen spam
Am Thu, 22 Apr 2010 10:50:36 +0200 schrieb Thomas Schremser:
...
Nun stellt sich mir die Frage, wo ich den Code dieser Abfragen unterbringen
soll. Zwei Möglichkeiten erscheinen mir praktikabel: für jede Prüfung eine
eigene Stored Procedure oder in der Tabelle mit den Beschreibungen in einer
zusàtzlichen Spalte. Welche Möglichkeit haltet ihr für besser?



Ich würde stored procedure nehmen, wobei sich mir die Frage stellt, warum
nicht alles in eine einzige stored proc schreiben? Da kann man dann mit
Parametern und Variablen innerhalb auch noch was steuern (zB. einen
Prüflauf auslassen, wenn der vorige bereits Fehler ergeben hat).

bye,
Helmut

Ähnliche fragen