代码之家  ›  专栏  ›  技术社区  ›  Liam neesan

在SQL Server中,如何在存储过程中传递可选参数?[关闭]

  •  0
  • Liam neesan  · 技术社区  · 6 年前

    我试图传递可选变量。用户可以传递值,也可以不传递。

    我尝试的是:

    ALTER PROCEDURE spSampleProc
        @Alias NVARCHAR(25) = NULL,
        @CountDate DATE
    AS
    BEGIN
        SELECT
            *
        FROM
            ST
        INNER JOIN
            Item ON Item.id = st.itemid
        LEFT JOIN
            PIC_User ON ST.HandHeldNo = PIC_User.ID
        LEFT JOIN
            ViewRecord AS Alias ON Alias.itemid = item.ID
        LEFT JOIN
            Department ON Department.ID = item.DepartmentID
        LEFT JOIN
            Category ON category.id = item.CategoryID
        WHERE
            (@Alias IS NULL OR (Alias.Alias LIKE '%' + @Alias + '%'))
            AND ST.Date >= @CountDate
    END
    

    运行它:

    EXEC spSampleProc @CountDate = '2018/09/01' @Alias = '6281063633419'
    

    “@Alias”附近的语法不正确。

    1 回复  |  直到 6 年前
        1
  •  3
  •   Mureinik    6 年前

    两个参数之间缺少逗号:

    Exec spSampleProc @CountDate='2018/09/01', @Alias='6281063633419'
    -- Here ---------------------------------^