MSSQL Stored Procedure Datenmanipulation

Vincent Vega

Level-1
Beiträge
12
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Morgen zusammen.

Ich brüte gerade über meiner ersten stored procedure mit folgendem
Problem:

In einer Tabelle befinden sich Datensätze mit Etikettendaten.
Es wird bei einer Abfrage genau EIN Datensatz selektiert, wenn die
entsprechende Produktnummer vorhanden ist.
Ist die Produktnummer nicht vorhanden, so ergibt das SELECT natürlich NULL.
In DIESEM Fall soll der zurückzugebende Datensatz mit Standardwerten gefüllt werden.

Vereinfacht :

Nehmen wir an in der Tabelle gibt es 2 Spalten :
PROD_NR [int]
ART_NR [int]

Werte innerhalb der Tabelle :

PROD_NR ----------- ART_NR

1000 2000
1010 8976


Ich übergebe die PROD_NR 1010 und erhalte als OUTPUT dann PROD_NR 1010 und ART_NR 8976 des selektierten Datensatzes.

Sollte die übergebene PROD_NR nicht vorhanden sein, so soll die Procedure
IMMER PROD_NR 9999 und ART_NR 9999 zurückgeben.

Ich habe z.Zt. keine Ahnung wie ich syntaxmässig auf die erfolgreich SELECTierten Daten innerhalb der SP zugreifen kann und diese per IF THEN ELSE modifizieren kann .....

Ich hoffe ich habe mich einigermassen verständlich ausgedrückt :)

Gruß
Mark
 
Hallo,

kann gerade nicht testen, aber ich würde einen Datensatz anlegen der folgendes enthält
Code:
PROD_NR    ART_NR
9999         9999

Und dann folgenden SELECT verwenden (Abfrage nach Prod-Code=0815):

PHP:
IF EXISTS

(SELECT  PROD_NR, ART_NR  FROM  myTable WHERE PROD_NR = 0815)

SELECT PROD_NR, ART_NR  FROM  myTable  WHERE  PROD_NR = 0815

ELSE

SELECT  PROD_NR, ART_NR FROM myTable  WHERE  PROD_NR = 9999

Hoffe das geht!

Viel Erfolg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die Antwort.
So habe ich es in der Zwischenzeit auch gelöst - funktioniert :)

IF EXISTS(SELECT * FROM dbo.TBL_Values WHERE PRODUKT_NR = @PRODNR)
SELECT (PRODUKT_NR, ART_NR, ART_BEZ01, ART_BEZ02, MHD, N_ARTIKEL, N_KARTON) FROM PROD WHERE PRODUKT_NR = @PRODNR
ELSE
SELECT (PRODUKT_NR, ART_NR, ART_BEZ01, ART_BEZ02, MHD, N_ARTIKEL, N_KARTON) FROM dbo.TBL_NOREAD WHERE PRODUKT_NR = 999999

Obwohl ich immer noch wissen möchte wie ich den Datensatz bearbeiten kann ...
 
Zurück
Oben