我需要将几千个数据文件加载到SQL Server表中。所以我编写了一个存储过程,它只接收一个参数--文件名。但是..。下面的代码不起作用。“编译器”对@FileName参数报错。它只需要普通的字符串..比如'file.txt‘。提前谢谢。
伊兰。
BULK INSERT TblValues
FROM @FileName
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
)
发布于 2011-09-05 18:27:24
The syntax for BULK INSERT statement是:
BULK INSERT
[ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ]
FROM 'data_file'
[ WITH
因此,文件名必须是字符串常量。要解决此问题,请使用动态SQL:
DECLARE @sql NVARCHAR(4000) = 'BULK INSERT TblValues FROM ''' + @FileName + ''' WITH ( FIELDTERMINATOR ='','', ROWTERMINATOR =''\n'' )';
EXEC(@sql);
https://stackoverflow.com/questions/7306616
复制相似问题