搞不懂!!怎么理解这些单引号得意义呢

ykyxkhjh2 2004-04-27 04:01:20
我写存储过程,发现单引号得问题错综复杂,希望整理一下自己得思绪,希望高手给予解答 .比如
1.select UserID from MyTable where User=@name 这个带参数得句子可以直接写在存储过程中,但是为什么select top @num UserID from MyTable where User=@name 却必须要写在exec('')里面呢?而且这个时要这样写下面句子where User='''@name'''

谁能说出个所以然来啊???
...全文
27 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsp 2004-04-27
  • 打赏
  • 举报
回复
应该都是可以的,@num和@name都必须先声明,@num应该是int型的,并且应该赋了值。
ykyxkhjh2 2004-04-27
  • 打赏
  • 举报
回复
那么为什么select top @num UserID from MyTable 这个句子不能直接写在存储过程当中而要加上exec('')呢?
为什么select UserID from MyTable where User=@name却可以直接写在存储过程当中??
xsp 2004-04-27
  • 打赏
  • 举报
回复
@num和@name是数据库里的变量,执行存储过程时要先赋值才能使用,你写的where User='''@name'''进入存储过程后变成了“...where User='@name'”,此时的user值是"@name",而不是@name变量的值。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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