2

以下代码有什么问题?

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

错误信息:

消息 102,级别 15,状态 1,第 3 行 '+' 附近的语法不正确。

4

1 回答 1

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)
于 2012-08-03T19:21:46.500 回答