下面这个存储过程在执行过程中出错,总是提示数据转换错误,可是我根本没有转换,经过一步步排查,问题出在下面:
set @where='where MpaOrder='+@MpaOrder 这句话上,后面直接+参数@MpaOrder难道不行吗?
应该怎么写?CREATE proc PrtMpa
@Tag int
,@MpaOrder varchar(50)
asdeclare @sql varchar(4000)
declare @where varchar(500)
set @sql='select * from v_PrtMpaDetail '
set @where='where MpaOrder='+@MpaOrder --问题出在这句话上,正确的写法得怎么写?
IF @Tag=0
BEGIN
SET @sql=@sql+@where+' and PartNo is null and isnull(IfService,0)=1'
EXEC(@sql)
END
ELSE IF @Tag=1
BEGIN
SET @sql=@sql+@where+' and not (PartNo is null and isnull(IfService,0)=1)'
EXEC(@sql)
END
ELSE IF @Tag=2
BEGIN
SET @sql=@sql+@where
EXEC(@sql)
END;
set @where='where MpaOrder='+@MpaOrder 这句话上,后面直接+参数@MpaOrder难道不行吗?
应该怎么写?CREATE proc PrtMpa
@Tag int
,@MpaOrder varchar(50)
asdeclare @sql varchar(4000)
declare @where varchar(500)
set @sql='select * from v_PrtMpaDetail '
set @where='where MpaOrder='+@MpaOrder --问题出在这句话上,正确的写法得怎么写?
IF @Tag=0
BEGIN
SET @sql=@sql+@where+' and PartNo is null and isnull(IfService,0)=1'
EXEC(@sql)
END
ELSE IF @Tag=1
BEGIN
SET @sql=@sql+@where+' and not (PartNo is null and isnull(IfService,0)=1)'
EXEC(@sql)
END
ELSE IF @Tag=2
BEGIN
SET @sql=@sql+@where
EXEC(@sql)
END;
解决方案 »
- 有没有这样的触发器或者类似的机制
- 求一多条件的分页存储过程....
- 求助,恢复数据库中的一个表的数据!
- SQL语句 update 能不能把修改的列和值一次性赋值给一个参数传过来
- 各位大侠~求解!!!!!急!!!!
- 【问】MsiGetProductInfo 无法检索 Product Code {7CD75BC7585F495999ACABDCC5D0030A}
- 请教个Mysql循环插入数据的问题
- 再问一个SQL语句
- 设计一个学生管理系统的数据库(希望开发过的兄台提提意见)
- 求解一个sql语句。%%%%%%%%%%%%%%%%%%
- sql2000服务器登录问题
- select * 和select字段的是与非
set @where='where MpaOrder='''+@MpaOrder+'''
少了个
有必要看下create table #(code varchar(20),value int)
declare @sql varchar(200)
set @sql='insert into # select ''AAA'',10'
-- AAA之前的一对单引号与之后的一对单引号分别代表一个单引号print @sql --查看这个字符串的实际内容
/*
insert into # select 'AAA',10
*/exec(@sql)
select * from #
/*
code value
-------------------- -----------
AAA 10
*/--如果需要insert一个值为'A''AA'的字符串,如下:
set @sql='insert into # select ''A''''AA'',10'
--两层嵌套的字符串内部,一个单引号需要经过两次转义,于是变成了4个单引号print @sql --查看这个字符串的实际内容
/*
insert into # select 'A''AA',10
*/exec(@sql)select * from #
/*
code value
-------------------- -----------
AAA 10
A'AA 10
*/
drop table #