为什么这条SQL语句会出错?

baiyongchun 2003-08-26 07:09:10
declare @s varchar(256)
declare @ln int
set @s='文本文档'
set @ln=len(s)
select * from mydoc where cap=@s

--错误提示:
服务器: 消息 207,级别 16,状态 3,行 4
列名 's' 无效。
...全文
116 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
chpp_2000 2003-08-27
  • 打赏
  • 举报
回复
来晚了
baiyongchun 2003-08-27
  • 打赏
  • 举报
回复
啊。。。。原来是这样啊。
  谢谢各位的帮助!
zjcxc 元老 2003-08-26
  • 打赏
  • 举报
回复
declare @s varchar(256)
declare @ln int
set @s='文本文档'
set @ln=len(s) --少了一个@ ,正确的应该是:set @ln=len(@s)
select * from mydoc where cap=@s
killxtt 2003-08-26
  • 打赏
  • 举报
回复
就是阿,明明是@s,怎么变成len(s)了
pengdali 2003-08-26
  • 打赏
  • 举报
回复
declare @s varchar(256)
declare @ln int
set @s='文本文档'
set @ln=len(@s)
select * from mydoc where cap=@s
zarge 2003-08-26
  • 打赏
  • 举报
回复
set @ln=len(s)

改为

set @ln=len(@s)
hjb111 2003-08-26
  • 打赏
  • 举报
回复
declare @s varchar(256)
declare @ln int
set @s='文本文档'
set @ln=len(s)
exec('select * from mydoc where cap='+@s)
baiyongchun 2003-08-26
  • 打赏
  • 举报
回复
最后一句应该是这样:
select * from mydoc where substring(cap,1,@ln)=@s

34,874

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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