【发布时间】:2017-04-05 21:06:33
【问题描述】:
如果我执行下面的脚本,数据可以插入到表中。
CREATE PROCEDURE dbo.loadDataFrFlatFile
AS
BEGIN
BULK INSERT PERSONS
FROM 'C:\SampleData1.csv'
WITH (FieldTerminator = '|', RowTerminator = '\n')
END
RETURN 1
GO
EXEC dbo.loadDataFrFlatFile
但是,如果我将文件路径作为输入变量,它就不起作用了。
CREATE PROCEDURE dbo.loadDataFrFlatFile
(
@flatFilePath varchar(255)
)
AS
BEGIN
BULK INSERT PERSONS
FROM ' + @flatFilePath + '
WITH (FieldTerminator = '|', RowTerminator = '\n')
END
RETURN 1
GO
EXEC dbo.loadDataFrFlatFile @flatFilePath = 'C:\SampleData1.csv'
显示的错误是:
Msg 4860, Level 16, State 1, Procedure loadDataFrFlatFile, Line 12
Cannot bulk load. The file " + @flatFilePath + " does not exist.
请帮忙。提前致谢。
【问题讨论】:
标签: sql-server bulkinsert flat-file