存储过程中用了set @str后,需要每句中都要转换字符串类型吗?

echolife 2008-03-11 09:54:23
如以下这句:

@str nvarchar(1000)
set @str='select TopicID from ttt where ID='+@ID+' ORDER BY lastposttime desc'

这样就不行,一定改成
ID='+ CONVERT(nvarchar,@ID) +'

但ID我之前已经声明为 int 了。
难道每次set @str =时 都要重新转换吗?

那样不是太麻烦了?
...全文
116 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
-狙击手- 2008-03-13
  • 打赏
  • 举报
回复
字符 加 数字能行瓵
mhxcy 2008-03-13
  • 打赏
  • 举报
回复
要重新转换
SeerMi 2008-03-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yueliangdao0608 的回复:]
那你就定义两个变量喽!
[/Quote]

如果不想,这样不错啊 :) 哈哈
wzy_love_sly 2008-03-11
  • 打赏
  • 举报
回复
也有隐试转换,楼主可以查下帮助,很详细
-狙击手- 2008-03-11
  • 打赏
  • 举报
回复
set @str='select TopicID from ttt where ID='+ltrim(@ID)+' ORDER BY lastposttime desc'
playwarcraft 2008-03-11
  • 打赏
  • 举报
回复
或者定義個新變量
declare @id int, @tmp_id varchar(05)
set @id=10
set @tmp_id=convert(varchar(05),@id)
...
kelph 2008-03-11
  • 打赏
  • 举报
回复
必须转,
wzy_love_sly 2008-03-11
  • 打赏
  • 举报
回复
也可以用ltrm(),rtrim()等,要转
playwarcraft 2008-03-11
  • 打赏
  • 举报
回复
如果不轉換,變成 string+int,
這本來就是說不過去的.
dawugui 2008-03-11
  • 打赏
  • 举报
回复
@str nvarchar(1000)
set @str='select TopicID from ttt where ID='+cast(@ID as varchar)+' ORDER BY lastposttime desc'

set @str='select TopicID from ttt where ID='+convert(varchar,@ID)+' ORDER BY lastposttime desc'

这两种.
dawugui 2008-03-11
  • 打赏
  • 举报
回复
是的.
懒得去死 2008-03-11
  • 打赏
  • 举报
回复
那你就定义两个变量喽!

34,837

社区成员

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

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