在SQL Server中创建函数?

时间:2016-04-17 21:07:15

标签: sql-server function tsql parameters

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

到目前为止,我有:

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

我尝试运行时遇到的错误是

  

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

我对于声明@startdate@enddate以及声明声明的位置感到困惑。谢谢!

1 个答案:

答案 0 :(得分: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)

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