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

问题描述 投票:0回答:1

我试图传递可选变量。用户可以传递价值或者可以不传递。

我尝试了什么:

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'附近的语法不正确。

sql sql-server stored-procedures syntax-error
1个回答
3
投票

你错过了两个参数之间的逗号:

Exec spSampleProc @CountDate='2018/09/01', @Alias='6281063633419'
-- Here ---------------------------------^
© www.soinside.com 2019 - 2024. All rights reserved.