+ -
当前位置:首页 → 问答吧 → 把多个条件串起来,传给存储过程报错

把多个条件串起来,传给存储过程报错

时间:2011-12-15

来源:互联网

如:
create proc pr_name (@str varchar(1000))
as
  exec('select * from tb '+@str)

exec pr_name ' where id=xx and name=xxx'
执行这句 引号里还有引号时报错!

作者: mylovemoon2010   发布时间: 2011-12-15

你把你的需求全发出来看看,我昨天看你的哪个有别的办法没,你只发了一半
如果引号里有引号,就拼很多引号

作者: ssp2009   发布时间: 2011-12-15

'' 2个引号作为转义

作者: geniuswjt   发布时间: 2011-12-15

SQL code
create proc pr_name 
as
declare @sql varchar(1000)
set @sql='where id=xx and name=xxx'
select @sql='select * from tb'+@sql 
exec(@sql)

exec pr_name

作者: fredrickhu   发布时间: 2011-12-15

我试出来了里面的用""括起来就行了,可以'select * from tb '这句太长它就报错了

作者: mylovemoon2010   发布时间: 2011-12-15

引用 4 楼 mylovemoon2010 的回复:
我试出来了里面的用""括起来就行了,可以'select * from tb '这句太长它就报错了

declare @sql varchar(max) --长度改大一点

作者: ssp2009   发布时间: 2011-12-15

作者: mylovemoon2010   发布时间: 2011-12-15

好的,我试试,还有啊,连的语句里也有引号,也要用双引号吗

作者: mylovemoon2010   发布时间: 2011-12-15

引用 7 楼 mylovemoon2010 的回复:
好的,我试试,还有啊,连的语句里也有引号,也要用双引号吗

是的

作者: fredrickhu   发布时间: 2011-12-15