Announcement

Collapse
No announcement yet.

Prozedur mit optionalen Parametern

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Prozedur mit optionalen Parametern

    hallo,
    ich stehe gerade etwas am Schlauch.

    In einer Anwendung möchte ich möglichst viel beim einer Listenausgabe mit Parametern in einer einzigen SP lösen.

    Tabelle beispielsweise mit Aufträgen
    Felder: KundenID, Vorgangsdatum, VorgangsartID

    Für jedes der genannten Felder soll es in der SP einen Parameter geben. Wenn NULL übergeben wird, soll dieser nicht im WHERE-Teil auftauchen oder nicht das Ergebnis eingrenzen.

    Standard-SQL ungefiltert
    SELECT * FROM tbl_Auftrag

    Mein Ansatz um alle 3 Parameter in der SP unter zu bekommen ist dynamisches SQL. Aber ich es nicht irgendwie anders möglich, nicht zu filtern wenn NULL übergeben wird?

    Ansatz:
    Code:
    SET @strSQL = '
    SELECT * FROM tbl_Auftrag WHERE 1 = 1 '
    
    IF KundenID IS NOT NULL
    SET @strSQL = @strSQL + ' AND KundenID = ' + CAST(@KundenID AS VARCHAR(50))
    
    IF Vorgangsdatum IS NOT NULL
    SET @strSQL = @strSQL + ' AND Vorgangsdatum = ' + CAST(@Vorgangsdatum AS VARCHAR(50))
    
    IF VorgangsartID IS NOT NULL
    SET @strSQL = @strSQL + ' AND VorgangsartID  = ' + CAST(@VorgangsartID  AS VARCHAR(50))
    geht das auch ohne dynamisches SQL?

  • #2
    [highlight=sql]
    ...
    WHERE IsNull(@KundenID,KundenID) = KundenID
    [/highlight]

    Wäre das ein Ansatz?
    Ich habs gleich!
    ... sagte der Programmierer.

    Comment


    • #3
      einfach aber voll genial

      Comment

      Working...
      X