2010-12-01 3 views
1

Ich habe eine gespeicherte Prozedur in Sybase deklariert, und einer der Parameter ist vom Typ datetime. Jetzt möchte ich diese Datetime einen Standardwert zuweisen.Wie kann ich einen Standard-Datetime-Parameter in einer gespeicherten Prozedur festlegen?

Hier ist die Erklärung:

create procedure Procedure 
(
    @fromDate datetime = getdate() 
) 
... 

Allerdings ist Sybase mir einen Fehler geben

Number (102) Severity (15) State (1) Server (SERVER) Procedure (Procedure) Incorrect syntax near '('. 

Ist es möglich, dies zu tun? Wenn nicht, gibt es einen Workaround?

Antwort

3

Sie können einen Funktionsaufruf nicht in einer Standardvariablenzuweisung verwenden (wie Sie herausgefunden haben).

Setzen Sie den Standardwert auf Null, und legen Sie zuerst eine Zuweisung in die gespeicherte Prozedur.

create procedure Procedure 
    (
     @fromDate datetime = NULL 
) 
    begin 

     set @fromDate = coalesce(@fromDate , getdate()) 

    end 
+0

Ich habe diese Frage vor Jahren gestellt! Kredit geben, wo Kredit fällig ist. Vielen Dank! –

Verwandte Themen