Frage

In meinem gespeicherten Prozedur muss ich einen einzigen Parameter, der mir ein Potential von 3 Werte geben wird.

So kann ich, wie etwas tun:

@p1  <-- my parameter


IF (@p1 ???)  -- include users
     SELECT * FROM USERS


IF (@p1 ???) -- include employees
    SELECT * FROM employees

IF (@p1 ???) -- iclude customers
    SELECT * FROM CUSTOMERS

Ich vermute, ich muss etwas Bit-Banging tun, aber nicht sicher, wie es in SQL zu tun.

Update

Ich bin eigentlich eine Vereinigung von Art zu tun.

War es hilfreich?

Lösung

Wenn @ p1 ist ein int, oder eine Variante davon wie Bigint oder tinyint, werden Sie wahrscheinlich bitweise verwenden könnte und.
Hier ein Beispiel:

IF ( @p1 & 1 = 1)
IF ( @p1 & 4 = 4)

Andere Tipps

Anstatt die Inline-T-SQL, Sie sind oft besser getrennt gespeicherte Prozeduren erstellen und rufen sie.

Das ist, weil es nur ein Cache gespeicherten Abfrage-Plan pro Charge ist.

Auch , beherzigt Remus Kommentar: Sie haben die einzige Verantwortung Regel brechen. Das macht die Wartung fehleranfällig.

Es könnte eine andere Geschichte sein, wenn Sie immer die gleichen mehrere Ergebnismengen (MARS) Rückkehr ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top