declare @date datetime
set @date='2011-12-01'
declare @str nvarchar(max)
set @str='select * '
select @str = @str +'from users'
exec (@str)--我需要把变量日期与拼的字符串添加到A表里面
insert into A表 @data exec (@str) --这样写是错误的

解决方案 »

  1.   

    --你把@date也放到动态sql里,也就是你的@str里,然后再
    insert into A表 
    exec (@str)
    --就可以了,不过没指定列名,要确定每个列都对得上!
      

  2.   

    我刚开始是这样想的,结果提示报错,日期不能转字符串,没办法,后我用cast(@date as nvarchar(20))结果打印出来结果是不对的。用convare转也是一样。
      

  3.   

    ...你在混了也不少日子了,date转varchar都还不会么
    是这么转的select convert(varchar(20),getdate(),120)
    哥表示无语啦!!!
      

  4.   

    declare @date datetime
    set @date='2011-12-01'
    declare @str nvarchar(max)
    set @str='select * '
    select @str = @str +'from users' + convert(nvarchar(10),@date,120)
    exec (@str)