我有一个SSIS任务,其中控制流从外部源中提取数据,将其上传到CSV并修改行,然后将CSV文件上传到SQL Server表中。
通常,我将CSV本地文件保留在我的计算机上并在其中引用,但是在将SSIS包部署到SQL Server以作为计划作业运行时,这不再可行。此外,在这种特定情况下,我无法在SQL Server中创建一个临时表来代替CSV文件。
是否可以在SQL Server中以CSV格式上传CSV文件?另外,引用外部存储的CSV文件或替换SSIS包中的临时CSV文件(例如临时平面文件)的最佳方法是什么?
答案 0 :(得分:1)
有几种方法可以实现此目的。一种方法是将其保存在网络驱动器上,并根据您在SQL Server中安装的驱动程序类型使用openrowset,openquery来访问csv文件(如表)。
查看示例:
SELECT *
FROM
OpenRowset('MSDASQL','Driver={Microsoft Access Text Driver (*.txt, *.csv)};
Extended properties=''ColNameHeader=True;
Format=Delimited;''',
'select * from \\server1\File.csv'
)Bas
OR
SELECT
*
FROM OPENROWSET(
'Microsoft.ACE.OLEDB.12.0',
'Text;Database=D:\NetworkLocation\;HDR=Yes;FORMAT=Delimited(;)',
'SELECT * FROM [File.csv]') i