BULK INSERT错误:'+'附近的语法不正确

时间:2012-08-03 19:16:03

标签: sql sql-server tsql bulkinsert

以下代码有什么问题?

BULK INSERT test
FROM 'myfile_'+ CONVERT(VARCHAR(20), GETDATE(), 112) + '.TXT'
    WITH
    (FIRSTROW = 2,
     FIELDTERMINATOR = '~',
     ROWTERMINATOR = '\n')

错误讯息:

  

Msg 102,Level 15,State 1,Line 3'+'附近的语法不正确。

1 个答案:

答案 0 :(得分:4)

您无法在批量插入语句中动态地将日期连接到文件名...

如果你想这样做,你必须使用动态Sql构建语句然后执行它:

DECLARE @Sql NVARCHAR(MAX)
SET @Sql = 
'BULK INSERT test
FROM ''myfile_' + CONVERT(VARCHAR(20), GETDATE(), 112) + '.TXT''
    WITH
    (FIRSTROW = 2,
     FIELDTERMINATOR = ''~'',
     ROWTERMINATOR = ''\n'')'

EXEC(@Sql)