So funktioniert es ...
Du musst prüfen ob die initiale Abfrage "SELECT * FROM MPK_FORM WHERE FORMNR = @FormNr" Datensätze zurückgibt ...
SQL-Code:
CREATE PROCEDURE SP_IMPORT_FORM
@FormNr VARCHAR(5) = NULL
AS
-- versuche @FormNr in MPK_FORM zu finden
SELECT * FROM MPK_FORM WHERE FORMNR = @FormNr
-- wenn @@ROWCOUNT = 0 (also kein Datensatz zurückgegeben)
IF @@ROWCOUNT = 0
BEGIN
-- Gib alle Spalten und alle Datensätze der Tabelle MPK_DEKOR zurück
SELECT * FROM MPK_DEKOR
END
ELSE
BEGIN
-- Gib alle Spalten und alle Datensätze der Tabelle MPK_SAMMEL zurück
SELECT * FROM MPK_SAMMEL
END
GO
Die Variante von Marcel funktioniert auch, jedoch machst du dann einen zusätzlichen (unnötigen) Funktionsaufruf (EXISTS), den wir mit meiner Methode vermeiden können.
@@ROWCOUNT wird standardmäßig bei jedem INSERT, UPDATE, SELECT, DELETE zurückgegeben.