Seb*_*Seb 3 sql stored-procedures sql-server-2008
我有一个存储过程,它有四个参数.我想在另一个脚本中调用它,但是当我这样做时,我还没有确切地知道我想要通过它.我正在尝试内联存储过程.所以我的行看起来像这样:
EXEC stored_procedure
@firstparam,
@secondparam,
CASE @thirdparam
WHEN null THEN 0
ELSE 1
END,
CASE @fourthparam
WHEN null THEN 0
ELSE 1
END
Run Code Online (Sandbox Code Playgroud)
但是我在以下部分附近得到了"错误语法"这个非常含糊的错误:
我只是想能够执行一个CASE语句,根据第三和第四个参数传递正确的变量.
你需要变量.该exec语句不计算参数的表达式:
DECLARE @p3flag int = (CASE WHEN @thirdparam IS NULL THEN 0 ELSE 1 END);
DECLARE @p4flag int = (CASE WHEN @fourthparam IS NULL THEN 0 ELSE 1 END);
EXEC stored_procedure @firstparam, @secondparam, @p3flag, @p4flag;
Run Code Online (Sandbox Code Playgroud)