在网上看到这样一句话:
declare @a datetime
set @a=getdate()
EXEC master..xp_cmdshell 'bcp northwind.dbo.Customers out c:\001.xls -c -q -S"192.168.2.3" -U"sa" -P"imd2006"'GO
现在我想着用变量@a代替001做文件夹,怎么试验也不行,哪位大虾帮我写一下。
出结果就结帐

解决方案 »

  1.   

    declare @a datetime
    set @a=getdate()
    EXEC('master..xp_cmdshell ''bcp northwind.dbo.Customers out c:\'+@a+'.xls -c -q -S"192.168.2.3" -U"sa" -P"imd2006"'''
      

  2.   

    EXEC master..xp_cmdshell 'bcp northwind.dbo.Customers out c:\' + CONVERT(VARCHAR(10),GETDATE(),112) + '.xls -c -q -S"192.168.2.3" -U"sa" -P"imd2006"'或者EXEC master..xp_cmdshell 'bcp northwind.dbo.Customers out c:\' + CONVERT(VARCHAR(10),@a,112) + '.xls -c -q -S"192.168.2.3" -U"sa" -P"imd2006"'这样不行?
      

  3.   

    1.lxzm1001(*蓝星之梦*) ( ) 信誉:100 :消息 102,级别 15,状态 1,第 48 行
    '.xls -c -q -S"192.168.2.3" -U"sa" -P"imd2006"'' 附近有语法错误。
    2.fcuandy(边打魔兽边回贴) ( ) 信誉:100 
    第一短代码也有错误
    消息 102,级别 15,状态 1,第 46 行
    '+' 附近有语法错误。
      

  4.   

    语法应该与sql版本没关系吧
    我在2005上运行的
      

  5.   

    declare @a varchar(100)
    declare @b varchar(100)set @a='bcp northwind.dbo.Customers out c:\'
    set @b=convert(varchar(10),getdate())
    set @b=replace(@b,' ','')
    set @a=@a+@b+'.xls -c -q -S"192.168.2.3" -U"sa" -P"imd2006"'print @a
    exec master..xp_cmdshell @a