我试图传递可选变量。用户可以传递价值或者可以不传递。
我尝试了什么:
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'附近的语法不正确。
你错过了两个参数之间的逗号:
Exec spSampleProc @CountDate='2018/09/01', @Alias='6281063633419'
-- Here ---------------------------------^