ALTER PROCEDURE search_news
 (@key nvarchar(30)='',
  @from smalldatetime=null,
  @to smalldatetime=null
 )
as 
set nocount on
DECLARE @WhereStr NVARCHAR(1000)
SELECT @WhereStr=''
IF (@key <>'')
SELECT @WhereStr = @WhereStr + ' AND topic like ''%' + rtrim(@key) + '%'''
if (@from <> null)
select @WhereStr = @WhereStr +' AND uptime>=''' + CAST(@from as nvarchar) + '''' 
if (@to <> null)
select @WhereStr = @WhereStr +' AND uptime<=''' + CAST(@to as nvarchar) + '''' EXEC('select * from news where 2>1 '+@WhereStr)set nocount off
因为@from,@to这个查询日期用户可以不选,所以要赋一个空值。当给@from=2005-5-8时,但是在下面的判断语句中却直接略过了,不执行 select @WhereStr = @WhereStr +' AND uptime。这句了,请问这是怎么回事儿,怎么解决阿