我需要将几千个数据文件加载到SQL Server表中。因此,我编写了一个存储过程,只接收一个参数-文件名。但是...以下代码不起作用。 "编译器" 抱怨 @FileName 参数...它只想要纯字符串,如'file.txt'。谢谢。
Ilan。
BULK INSERT TblValues
FROM @FileName
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
)
我需要将几千个数据文件加载到SQL Server表中。因此,我编写了一个存储过程,只接收一个参数-文件名。但是...以下代码不起作用。 "编译器" 抱怨 @FileName 参数...它只想要纯字符串,如'file.txt'。谢谢。
Ilan。
BULK INSERT TblValues
FROM @FileName
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
)
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);