这个存储过程哪里错了?

liutiejiang 2005-12-09 09:27:17
CREATE PROCEDURE hotel_GetGiftProvide
@cardsCode char(10),
@giftCode varchar(50)
AS
declare @s nvarchar(4000)
set @s='select * from table_GiftGiving where 1=1 '
if @cardsCode<>''
set @s=@s + ' and cardsID in (select cardsID from table_Cards where
cardsCode='+@cardsCode+') '
if @giftCode<>''
set @s=@s + ' and giftID in (select giftID from table_Gift where
giftCode like %'+@giftCode+'%)'
EXEC (@s)
GO
在程序中执行,报错“第1行,‘01’附近有语法错误。”
注:01是变量@giftCode的值
怎么回事?请帮忙看看
...全文
160 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cen123 2005-12-09
  • 打赏
  • 举报
回复
同意楼上。
hamadou 2005-12-09
  • 打赏
  • 举报
回复
如果字符串中本身含有',那么采用两个''来代替即可。
kjq_vb 2005-12-09
  • 打赏
  • 举报
回复
giftCode like %'+@giftCode+'%)' --这里有问题
改成
giftCode like '+char(39)+'%' + @giftCode + '%'+ char(39) + ')'
或giftCode like '''+'%' + @giftCode + '%'')'
EricBai 2005-12-09
  • 打赏
  • 举报
回复
如楼上所说
like % 语句要这样用 like '%1233%'
openhouse 2005-12-09
  • 打赏
  • 举报
回复
giftCode like %'+@giftCode+'%)' --这里有问题
改成
giftCode like %'+char(39) + @giftCode + '%'+ char(39) + ')'
slhuang 2005-12-09
  • 打赏
  • 举报
回复
试了下,没错啊。

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧