使用文件名参数批量插入 [英] Bulk Insert with filename parameter

查看:80
本文介绍了使用文件名参数批量插入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将成千上万个数据文件加载到SQL Server表中。
因此,我编写了一个仅接收一个参数-文件名的存储过程。
但是..以下内容不起作用..编译器抱怨@FileName参数..它只需要纯字符串..如 file.txt。
提前谢谢。

I need to load a couple of thousands of data files into SQL Server table. So I write a stored procedure that receives just one parameter - file name. But.. The following doesn't work.. The "compiler" complains on @FileName parameter.. It wants just plain string.. like 'file.txt'. Thanks in advance.

伊兰。

BULK INSERT TblValues
FROM @FileName
WITH 
(
FIELDTERMINATOR =',',
ROWTERMINATOR ='\n'
)


推荐答案

BULK INSERT语句的语法为:

BULK INSERT 
   [ database_name. [ schema_name ] . | schema_name. ] [ table_name | view_name ] 
      FROM 'data_file' 
     [ WITH 

因此,文件名必须是字符串常量。
要解决该问题,请使用动态SQL:

So, the file name must be a string constant. To solve the problem please use dynamic SQL:

DECLARE @sql NVARCHAR(4000) = 'BULK INSERT TblValues FROM ''' + @FileName + ''' WITH ( FIELDTERMINATOR ='','', ROWTERMINATOR =''\n'' )';
EXEC(@sql);

这篇关于使用文件名参数批量插入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆