如以下这句:@str nvarchar(1000)
set @str='select TopicID from ttt where ID='+@ID+' ORDER BY lastposttime desc'这样就不行,一定改成
ID='+ CONVERT(nvarchar,@ID) +'但ID我之前已经声明为 int 了。 
难道每次set @str =时 都要重新转换吗?那样不是太麻烦了?

解决方案 »

  1.   

    @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' 这两种.
      

  2.   

    如果不轉換,變成 string+int,
    這本來就是說不過去的.
      

  3.   

    也可以用ltrm(),rtrim()等,要转
      

  4.   

    或者定義個新變量
    declare @id int, @tmp_id varchar(05)
    set @id=10
    set @tmp_id=convert(varchar(05),@id)
    ...
      

  5.   

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