Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server BCP文件名作为日期时间戳_Sql Server_Tsql_Bcp_Xp Cmdshell - Fatal编程技术网

Sql server BCP文件名作为日期时间戳

Sql server BCP文件名作为日期时间戳,sql-server,tsql,bcp,xp-cmdshell,Sql Server,Tsql,Bcp,Xp Cmdshell,我正在尝试使用BCP包装CSV导出文件,文件名中带有日期戳。一切看起来都是正确的,但我一直在+号附近出错 BEGIN SET NOCOUNT ON DECLARE @mydate DATETIME DECLARE @filename VARCHAR(40) SET @mydate = GETDATE() SET @filename = 'C:\TEMP\TEST-'+CONVERT(varchar,FORMAT(@mydate,'yyyyMMdd-

我正在尝试使用BCP包装CSV导出文件,文件名中带有日期戳。一切看起来都是正确的,但我一直在+号附近出错

 BEGIN
    SET NOCOUNT ON
    DECLARE @mydate DATETIME
    DECLARE @filename VARCHAR(40)
    SET @mydate = GETDATE()
    SET @filename = 'C:\TEMP\TEST-'+CONVERT(varchar,FORMAT(@mydate,'yyyyMMdd- 
    hhmmss'))+'.csv'

    exec master..xp_cmdshell 'bcp "select 
    CHAR(34)+""SampleNo""+CHAR(34),CHAR(34)+""Analysis 
    Code""+CHAR(34),CHAR(34)+""Analyte Name""+CHAR(34),CHAR(34)+""Old 
    Result""+CHAR(34),CHAR(34)+""New 
    Result""+CHAR(34),CHAR(34)+""ChangeDate""+CHAR(34)+CHAR(44) union all 

SELECT CHAR(34)+SAMPNO+CHAR(34), CHAR(34)+ACODE+CHAR(34), 
   CHAR(34)+ANLNAME+CHAR(34), CHAR(34)+OLDRESULT+CHAR(34), 
   CHAR(34)+NEWRESULT+CHAR(34), CHAR(34)+CHANGEDATE+CHAR(34)+CHAR(44) 
FROM TEST.dbo.MODIFY_EXPORT" QUERYOUT ' +  @filename + ' -S SERV2012R2 -U sa -P password -c -t","'

    END;

到底是什么错误?加号到底是什么?这是哪一条SQL?@Sentry SQL 2017错误:Msg 102,级别15,状态1,第22行“+”附近的语法不正确。因此,@filename之前的“+”是我得到扭曲红线的地方。将查询传递到变量中,然后将此变量作为参数传递给
exec master..xp\u cmdshell
,而不是
exec master..xp\u cmdshell”bcp“选择。。。。依此类推,
try
exec master..xp_cmdshell@Statement
,因为@Statement是nvarchar(4000)