在SQL Server中创建函数?

Hai*_*ley 2 t-sql sql-server parameters function

我正在尝试创建一个函数,当用户输入开始日期和结束日期作为参数时,该函数将打印游戏信息.如果游戏日期在开始日期和结束日期之间,它将显示游戏信息.我决定使用表值函数.

到目前为止,我有:

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

我尝试运行它时得到的错误是

必须声明标量变量"@StartDate".

我很困惑,我会宣布@startdate,并@enddate为地方和在声明中宣布的.谢谢!

mar*_*c_s 8

参数被调用@InputStartDate,但在代码中,您使用@StartDate- 下定决心!

试试这个:

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)
Run Code Online (Sandbox Code Playgroud)

如果为参数 命名@InputStartDate,则必须在T-SQL语句中使用相同的名称!

  • 很棒的视觉效果!:d (2认同)