解决方案 »

  1.   

    exec master..xp_cmdshell 'BCP "select top 2 * from eHR.dbo.TbBase_Emplbase" queryout d:/文件夹/'+CONVERT(VARCHAR(10),@time,120)+'.txt -c -S"." -U"sa" -P"james123$%^"'
    @time是DATETIME类型吧,需要转换成字符串
      

  2.   


    @time varchar(50) 是字符串啊
      

  3.   

    我傻眼了,你一开始就写的VARCHAR(50)try this
    DECLARE @sql VARCHAR(8000)
    declare @time varchar(50)
    SET @time=''
    SET @sql='BCP "select top 2 * from eHR.dbo.TbBase_Emplbase" queryout d:/文件夹/'+@time+'.txt -c -S"." -U"sa" -P"james123$%^"'
    exec master..xp_cmdshell @sql
      

  4.   


    -- xp_cmdshell 后面的动态语句必须事儿拼接完成,不能使用 + 这类型方法。
    -- 你的 @time 没有赋值 ,可能不会有结果,
    -- 下面这个,2008 下跑通的,你再改成你的 表名 和密码。declare @time varchar(50)
    declare @sql varchar(200) 
    set @time = CONVERT(varchar(10),getdate(),121)
    set @sql = 'BCP "select top 2 * from sysobjects" queryout d:/'+ @time+'.txt -c -S"." -U"sa" -P"sa"' 
    exec master..xp_cmdshell @sql