在SQLServer2008中,将一列文本文件中的数据导入表(多列)
每15秒从测量仪器获取一次数据,以这种形式组织数据在SQLServer2008中,将一列文本文件中的数据导入表(多列),sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,每15秒从测量仪器获取一次数据,以这种形式组织数据 14.08.2014 15:00:00 UP:69.8,DN:70.7,Q=87 FLOW: 229.214 l/s VEL: 1.18915 m/s 14.08.2014 15:00:15 UP:69.9,DN:70.5,Q=81 FLOW: 233.031 l/s VEL: 1.20896 m/s 14.08.2014 15:00:30 UP:69.9,DN:70.7,Q=84 FLOW: 233.716 l/s VEL: 1.2
14.08.2014 15:00:00
UP:69.8,DN:70.7,Q=87
FLOW: 229.214 l/s
VEL: 1.18915 m/s
14.08.2014 15:00:15
UP:69.9,DN:70.5,Q=81
FLOW: 233.031 l/s
VEL: 1.20896 m/s
14.08.2014 15:00:30
UP:69.9,DN:70.7,Q=84
FLOW: 233.716 l/s
VEL: 1.21251 m/s
我需要将其导入SQL Server 2008,按下表所示的形式组织,我发现很难做到这一点,请告诉我如何解决此问题:
Data UP DN Q FLOW VEL
---------------------------------------------------------------
14.08.2014 15:00:00 69.8 70.7 87 229.214 1.18915
14.08.2014 15:00:15 69.9 70.5 81 233.031 1.20896
14.08.2014 15:00:30 69.9 70.7 84 233.716 1.21251
请看一看
如果将数据写入一个名为data.txt的文件,则可以使用如下内容:
IF OBJECT_ID('tempdb..#rawdata') IS NOT NULL DROP TABLE #rawdata
create table #rawdata (
field1 varchar(255)
, field2 varchar(255)
, field3 varchar(255)
, field4 varchar(255)
)
BULK INSERT #rawdata
FROM 'C:\data.txt'
WITH (
FIELDTERMINATOR = '\n'
, ROWTERMINATOR = '\n\n'
, TABLOCK
)
SELECT field1 As Data
, SUBSTRING(field2, 4,4) AS UP
, SUBSTRING(field2, 12,4) AS DN
, SUBSTRING(field2, 19,2) AS Q
, SUBSTRING(field3, 6,8) AS FLOW
, SUBSTRING(field4, 5,8) AS VEL
FROM #rawdata
亲爱的@Bohemian我使用Windows使用类似.NET的程序。亲爱的@Blam,不,我不使用。这不是问题。亲爱的所有人,首先让我为没有感谢她为解决我的问题所做的努力而道歉。亲爱的亨基,我特别感谢你解决了我的问题,这是完美的