Sql server BCP文件名作为日期时间戳
我正在尝试使用BCP包装CSV导出文件,文件名中带有日期戳。一切看起来都是正确的,但我一直在+号附近出错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-
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“选择。。。。依此类推,
tryexec master..xp_cmdshell@Statement
,因为@Statement是nvarchar(4000)