弄了一上午也没弄好 急死了 请各位朋友帮忙 语句其实很简单
想编一个多条件查询的sql存储过程代码如下 本来想做个如果传入值为空就不查询,结果一直报错。后来吧语句都注释了就剩最下面那三句话 可还是出错 起大家帮我看看 我的字符串连接哪里错了
错误一直提示 列名xx无效
在线等回复 数据库sql2000ALTER PROCEDURE userselect_stock
/*
按商品名、商品分类、供应商姓名查询库存
*/@s_class varchar(30) ,
@s_gname varchar(40) ,
@s_sname char(100) AS--if @s_class != null
--if @s_gname != null
--set @strwhere = @strwhere + ' and s_gname = ' + @s_gname
--if @s_gname != null
--set @strwhere = @strwhere + ' and s_sname = ' + @s_sname
--select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice
--from stock where s_class = @s_class
declare @strwhere varchar(100)
declare @strmain char(600)
set @strwhere =' s_gname ='+@s_gname
set @strmain = 'select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice from stock where'+@strwhere
exec(@strmain)下面是我在查询分析器中输入的
exec userselect_stock '家电','洗衣机','海尔'
想编一个多条件查询的sql存储过程代码如下 本来想做个如果传入值为空就不查询,结果一直报错。后来吧语句都注释了就剩最下面那三句话 可还是出错 起大家帮我看看 我的字符串连接哪里错了
错误一直提示 列名xx无效
在线等回复 数据库sql2000ALTER PROCEDURE userselect_stock
/*
按商品名、商品分类、供应商姓名查询库存
*/@s_class varchar(30) ,
@s_gname varchar(40) ,
@s_sname char(100) AS--if @s_class != null
--if @s_gname != null
--set @strwhere = @strwhere + ' and s_gname = ' + @s_gname
--if @s_gname != null
--set @strwhere = @strwhere + ' and s_sname = ' + @s_sname
--select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice
--from stock where s_class = @s_class
declare @strwhere varchar(100)
declare @strmain char(600)
set @strwhere =' s_gname ='+@s_gname
set @strmain = 'select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice from stock where'+@strwhere
exec(@strmain)下面是我在查询分析器中输入的
exec userselect_stock '家电','洗衣机','海尔'
declare @strmain char(600)
set @strwhere =' s_gname ='''+@s_gname+''''
set @strmain = 'select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice from stock where'+@strwhere
exec(@strmain)
declare @strmain char(600)
set @strwhere =' s_gname ='+@s_gname
set @strmain = 'select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice from stock where'+@strwhere
exec(@strmain)这段写成declare @strwhere varchar(100)
declare @strmain char(600)
set @strwhere =' s_gname ='''+@s_gname+''''
set @strmain = 'select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice from stock where'+@strwhere
exec(@strmain)动态SQL文结合的时候不会根据你变量类型自动进行类型变换的值两边加上引号
set @strmain = 'select s_id,s_class,s_gname,s_sname,s_dnum,s_pprice,s_sprice from stock where'+@strwhere
看下你是不是用错数据库了,或者你的stock表里没有这句里面的某一列
/*
----
'
*/