我需要将数千个数据文件加载到 SQL Server 表中。
因此,我编写了一个只接收一个参数 - 文件名的存储过程。
但是..以下内容不起作用..“编译器”抱怨@FileName参数..它只需要纯字符串..如'file.txt'。
提前致谢。
Ilan.
BULK INSERT TblValues
FROM @FileName
WITH
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
)
BULK INSERT 语句的语法 http://msdn.microsoft.com/en-us/library/ms188365%28v=SQL.100%29.aspx is :
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)