将txt文件导入SQL Server

时间:2014-10-24 11:33:09

标签: sql sql-server-2008 batch-file

我想将数据从文本文件导入SQL Server 2008.我已经使用MySQL(Call MySQL stored procedure with parameter from batch file)完成了这项工作。我需要批量执行此操作。

到目前为止我的SQL Server代码

INSERT [pce].[dbo].[tlb_pce_actual]
  ([ElementId], [TargetDateTime], [CurrValue],[FolderDate],[FileDateTime],[FileName],[FolderPath],[ProcessDateTime])
   SELECT 
      BulkLoadFile.[IMPORTID],
      BulkLoadFile.[DT],
      [FolderDate] ='2014-05-19 00:00:00',
      [FileDateTime] ='2014-05-20 13:12:25',
      BulkLoadFile.[READING],
      [FileName]='CONSO_PCE_20140519_20140520_131225.csv',
      [FolderPath]='C:\Users\adminbi2\Downloads\Dsg_pce_raw_file\20140519',
      [ProcessDateTime]='2014-05-20 13:12:25'
   FROM  
      OPENROWSET (BULK 'C:\Users\********\Downloads\Dsg_pce_raw_file\20140519\CONSO_PCE_20140519_20140520_131225.csv',SINGLE_BLOB) AS BulkLoadFile

来自SQL Server的错误消息

  

Msg 207,Level 16,State 1,Line 4
  列名称“IMPORTID”无效。

     

Msg 207,Level 16,State 1,Line 5
  列名称'DT'无效。

     

Msg 207,Level 16,State 1,Line 8
  列名称“READING”无效。

IMPORTIDDTREADING是我文件的第一行。

这是我的文本文件的第一行

IMPORTID;DT;READING
A12250I2;19/05/2014 06:00;7,181

我需要这个(从mySQL)到SQL Server

FIELDS TERMINATED BY ";"
LINES TERMINATED BY '\n' 
IGNORE 1 ROWS
(@var1, @var2, @var3)
SET ElementId=@var1, TargetDateTime=!!,  CurrValue = REPLACE(@var3, ',', '.'), DataType='Actual', `TargetDate``TargetDateFolder``ComputeDateTime``ForcastValue``TargetFolder`;

关于批次

Calling MySQL
SET MYSQL_EXE="C:\Program Files\MySQL\MySQL Server 5.6\bin\mysql.exe"
SET DB_USER=****
SET DB_PWD=***
SET DB=***

CALL %MYSQL_EXE% --user=%DB_USER% --password=%DB_PWD% --database=%DB%    < C:\Users\7642FH\Local\fileTest.sql

SQL Server是否相同?

你有任何信息吗?

提前致谢

0 个答案:

没有答案