存储过程中用了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 =时 都要重新转换吗?

那样不是太麻烦了?
...全文
60 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
-狙击手- 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
那你就定义两个变量喽!
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-03-11 09:54
社区公告
暂无公告