如果我执行下面的脚本,可以将数据插入到表中。无法从SQL中的平面文件批量插入
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.
请帮助。提前致谢。