这个动态SQL语句要怎么执行呢?有参数的use Logsdeclare @MaxUsers int
declare @Querydate datetimeset @MaxUsers = 11 
set @Querydate = getdate() ----外部变量,临时赋值
Exec ('select top   ' + @MaxUsers + '  UserName From [Logs]

where datediff(day,  '+ @Querydate +'  ,addTime)=0 ')where datediff(day,  '+ @Querydate +'  ,addTime)=0 如果改为where datediff(day,  getdate() ,addTime)=0 就对了,但问题是,我这个@QueryDate是传入的日期呀!

解决方案 »

  1.   

    Exec ('select top  ' + @MaxUsers + '  UserName From [Logs] 
    where datediff(day, '''+ @Querydate +''',addTime)=0  ')
      

  2.   

    --这样呢?
    use Logsdeclare @MaxUsers int
    declare @Querydate datetimeset @MaxUsers = 11 
    set @Querydate = getdate() ----外部变量,临时赋值
    Exec ('select top   ' + @MaxUsers + '  UserName From [Logs]

    where datediff(day, '''+ @Querydate +''',addTime)=0 ')
      

  3.   

    declare @Querydate datetime
    declare @MaxUsers int
    set @MaxUsers = 11 
    set @Querydate = getdate() ----外部变量,临时赋值
    print ('select top   ' + cast(@MaxUsers as varchar(10)) + '  UserName From [Logs]

    where datediff(day,  '+ '''' + convert(varchar(10),@Querydate,120) +''''  +'  ,addTime)=0 ')--where datediff(day,  '+ @Querydate +'  ,addTime)=0
      

  4.   

    声称语句结果
    select top   11  UserName From [Logs]

    where datediff(day,  '2006-05-12'  ,addTime)=0