不输入参数时存储过程查询结果没有问题
见下图
如果输入参数后,提示等号附近有语法错误,我查看了,实在找不出原因,请帮忙查看,谢谢!
不输入参数时存储过程查询结果没有问题
见下图
如果输入参数后,提示等号附近有语法错误,我查看了,实在找不出原因,请帮忙查看,谢谢!
引自免费微信小程序:皆我百晓生
经过观察您的存储过程代码,我注意到了一些可能引起语法错误的地方。我会逐一指出并给出修改建议。
基于以上分析,我为您修改了存储过程的代码,请尝试使用以下代码:
ALTER PROCEDURE [dbo].[htbi_stock1]
@wlbm nvarchar(50),
@ck nvarchar(50),
@kw nvarchar(50)
AS
BEGIN
declare @where nvarchar(1000);
declare @stockje nvarchar(max);
set @where = '';
if @wlbm > ''
begin
set @where = @where + ' and wlbm = ''' + @wlbm + ''' ';
end
if @ck <> ''
begin
set @where = @where + ' and ckmc = ''' + @ck + ''' ';
end
if @kw <> ''
begin
set @where = @where + ' and kwmc = ''' + @kw + ''' ';
end
SET @stockje = N'select wlbm as 物料编码, wlmc as 物料名称, ggxh as 规格型号, ckdm as 仓库代码, ckmc as 仓库, kwdm as 库位代码, kwmc as 库位, sl as 数量, je as 金额 from htbj_stock ' + @where;
EXEC sp_executesql @stockje;
END;
请注意,这个修改是基于您提供的代码片段进行的,如果在实际使用中还有其他问题或错误,请进一步检查并修改。同时,为了避免SQL注入攻击的风险,请确保在使用动态SQL语句时采取适当的安全措施,如参数化查询或使用安全机制来保护您的数据库。