2016-04-17 5 views
2

Ich versuche eine Funktion zu erstellen, die Spielinformationen druckt, wenn der Benutzer ein Startdatum und ein Enddatum als Parameter eingibt. Es zeigt die Spielinformationen an, wenn das Spieldatum zwischen dem Start- und Enddatum liegt. Ich entschied mich, eine Tabellenwertfunktion zu verwenden.Erstellen von Funktionen in SQL Server?

Bisher habe ich:

CREATE FUNCTION fn_gamedate 
    (@InputStartDate DATETIME, 
    @InputEndDate DATETIME) 
RETURNS TABLE 
AS 
    RETURN 
     (SELECT * 
     FROM Game 
     WHERE Game.[Date] Between @StartDate AND @EndDate) 

Die Störung, die ich erhalte, wenn ich versuche, dies zu laufen ist

muss die skalare Variable "@StartDate" deklariert.

Ich bin verwirrt, was ich die @startdate erklären würde und @enddate wie und wo in der Aussage, es zu erklären. Vielen Dank!

Antwort

8

Der Parameter wird @InputStartDate genannt, aber im Code verwenden Sie @StartDate - Make up your mind!

Try this:

CREATE FUNCTION fn_gamedate 
    (@InputStartDate DATETIME, <--------+ 
    @InputEndDate DATETIME)    | these two need to MATCH! 
RETURNS TABLE        | 
AS          | 
    RETURN        | 
     (SELECT *       | 
     FROM Game      | 
     WHERE Game.[Date] Between @InputStartDate AND @InputEndDate) 

Wenn Sie den Namen Ihres Parameter@InputStartDate, dann Sie müssen den gleichen Namen in Ihrem T-SQL-Anweisung verwenden!

+2

Schöne Visuals! : D –

Verwandte Themen