在存储过程中怎么设置以下字符串?
set @s = N'
select refindkey,0 as deleted into #movepost from '+ @servername+ N'.DataScrapeDBlocal.dbo.post where dateofpost>=@dt_begin and dateofpost<@dt_end '

解决方案 »

  1.   

    declare @s varchar(8000),@dt_begin datetime,@dt_end datetime,@servername varchar(50)set @s = N'select refindkey,0 as deleted into #movepost from '+ @servername+ 
    N'.DataScrapeDBlocal.dbo.post where dateofpost>='+CONVERT(char(10),@dt_begin,120)+'and dateofpost<'+CONVERT(char(10),@dt_end,120)+''''exec(@s)要注意下,在字符形中,把变量提到外面;日期转换格式要正确.
      

  2.   

    set @s = N'select refindkey,0 as deleted into #movepost from '+ @servername+ 
    N'.DataScrapeDBlocal.dbo.post where dateofpost>='+CONVERT(nvarchar(10),@dt_begin,120)+'and dateofpost<'+CONVERT(nvarchar(10),@dt_end,120)+''''