Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于将数据从平面文件(文本文件).XYZ文件导入SQL表的脚本_Sql_Sql Server - Fatal编程技术网

用于将数据从平面文件(文本文件).XYZ文件导入SQL表的脚本

用于将数据从平面文件(文本文件).XYZ文件导入SQL表的脚本,sql,sql-server,Sql,Sql Server,我正在尝试创建一个脚本来将平面文件导入SQL Server表。我尝试使用导入向导,但由于我需要定期执行此操作,因此我必须创建一个SQL函数才能实现这一点,我不确定如何执行此操作。平面文件以以下格式存储: 19350.000 45978.000 1560.631 19352.000 45978.000 1560.234 19354.000 45978.000 1560.021 19356.000 45978.000 1559.809 1935

我正在尝试创建一个脚本来将平面文件导入SQL Server表。我尝试使用导入向导,但由于我需要定期执行此操作,因此我必须创建一个SQL函数才能实现这一点,我不确定如何执行此操作。平面文件以以下格式存储:

19350.000    45978.000     1560.631
19352.000    45978.000     1560.234
19354.000    45978.000     1560.021
19356.000    45978.000     1559.809
19358.000    45978.000     1559.596
我尝试了以下方法:

CREATE TABLE #TempTable
(
 Id int identity (1,1),
  X float,
  Y float,
 Z float
 )


  BULK INSERT #TempTable FROM 
'\\fcgwnt01\share.$\StandardHaulage\TEST\Automated\EVO\SurfaceFiles\EVO 2019- 
01-23.xyz'
WITH (FIELDTERMINATOR = '**\t**', ROWTERMINATOR = '\n')


SELECT * INTO [dbo].[SHM_EVO_SURFACE_DETAILS] FROM #TempTable

--Drop temporary table
DROP TABLE #TempTable
但是我得到了以下错误

Msg 4866,16级,状态1,第12行 批量加载失败。数据文件中第1行第1列的列太长。验证是否正确指定了字段终止符和行终止符。 信息7399,16级,状态1,第12行 链接服务器(null)的OLE DB提供程序“大容量”报告了错误。提供程序没有提供有关错误的任何信息。 信息7330,16级,状态2,第12行 无法从链接服务器(null)的OLE DB提供程序“大容量”中获取行


您可以尝试使用大容量插入-SSIS是您的一个选项吗?不,很遗憾,SSIS不是一个选项我假设这是一个制表符分隔的文件?如果是这样,为什么您使用FIELDTERMINATOR='\t'而不是FIELDTERMINATOR='\t'?我的意思是“asterix asterix\t asterix asterix”-似乎Stackoverflow将asterix视为格式化代码您可以尝试使用大容量插入-SSIS是您的一个选项吗?不,不幸的是,SSIS不是一个选项我假设这是一个制表符分隔的文件?如果是这样,为什么使用FIELDTERMINATOR='\t'而不是FIELDTERMINATOR='\t'?我的意思是“asterix asterix\t asterix asterix”—Stackoverflow似乎将asterix视为格式化代码