bcp 日期文件名
这条可以正常执行
EXEC master..xp_cmdshell 'bcp "select * from intabmanms" queryout e:\dxcj\20120222.txt   -c -t" " -Sibm -Usa -P""'
我想改成可变的文件名
declare @r char(20)
set @r ='e:\dxcj\'+ CONVERT(char(8),getdate(),112)+'.txt'EXEC master..xp_cmdshell 'bcp "select * from intabmanms" queryout @r   -c -t" " -Sibm -Usa -P""'
错误提示:未能准备语句

解决方案 »

  1.   

    加了一句执行
    declare @r char(30)
    set @r ='e:\dxcj\'+ CONVERT(char(8),getdate(),112)+'.txt'
    exec(@r)
    EXEC master..xp_cmdshell 'bcp "select * from intabmanms" queryout @r -c -t" " -Sibm -Usa -P""'
    错误提示:第 1 行: '\' 附近有语法错误。
      

  2.   

    declare @cmd nvarchar(4000)
    declare @r char(30)
    set @r ='e:\dxcj\'+ CONVERT(char(8),getdate(),112)+'.txt'
    set @cmd='bcp "select * from intabmanms" queryout '+@r+' -c -t" " -Sibm -Usa -P""'
    EXEC master..xp_cmdshell @cmd
      

  3.   

    declare @cmd nvarchar(4000)
    declare @r char(30)
    set @r ='e:\dxcj\'+ CONVERT(char(8),getdate(),112)+'.txt'
    set @cmd='bcp "select * from fyzls.dbo.intabmanms" queryout '+@r+' -c -t" " -Sibm -Usa -P""'
    EXEC master..xp_cmdshell @cmd
    成功