【发布时间】:2018-11-13 13:46:21
【问题描述】:
我正在尝试插入一个在文件名中包含日期时间的文本文件。
declare @V_SQL varchar(100)
set @V_SQL = (select REPLACE(REPLACE(CONVERT(VARCHAR,getdate()-1,106), ' ',''), ',',''))
BULK INSERT [dbo].[test] FROM '"E:\test_"+ @V_SQL +".txt"'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '0x0a'
)
GO
当我运行上述命令时,我收到以下消息 - BULK INSERT [dbo].[test] FROM '"E:\test_"+ @V_SQL +".txt"'
【问题讨论】:
-
FROM只接受文字,而不接受表达式(无论如何您的语法都不正确)。如果你想要一个变量文件名,你必须动态构建整个BULK INSERT语句 (REPLACE('BULK INSERT [dbo].[test] FROM $f WITH...', '$f', QUOTENAME('E:\test_' + @V_SQL + '.txt', ''''))) 和EXEC它。 -
我试过这样:。但带分隔符的是|。好像不行
标签: sql sql-server tsql sql-server-2008 sql-server-2012