参见英文答案 >
How to cast variables in T-SQL for bulk insert?6
我需要将数以万计的数据文件加载到sql Server表中.
所以我写一个只接收一个参数 – 文件名的存储过程.
但是..以下不起作用.“编译器”抱怨@FileName参数..它只需要简单的字符串..像’file.txt’.
提前致谢.
我需要将数以万计的数据文件加载到sql Server表中.
所以我写一个只接收一个参数 – 文件名的存储过程.
但是..以下不起作用.“编译器”抱怨@FileName参数..它只需要简单的字符串..像’file.txt’.
提前致谢.
宜兰.
BULK INSERT TblValues FROM @FileName WITH ( FIELDTERMINATOR =',',ROWTERMINATOR ='\n' )
解决方法
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);