讓我們考慮一個樣本CSV(在C盤)文件target-c.txt
包含四個數據線。(請注意我有使用target-c.txt
不target.txt
)
123,M,A,USA
H24,N,Z,USA
H25,N,V,USA
456,M,U,USA
現在創建一個非XML格式文件(在C Drive)將其命名爲targetFormat.fmt
。和填充在文件中按以下方式
9.0
4
1 SQLCHAR 0 100 "," 1 Col1 SQL_Latin1_General_CP1_CI_AS
2 SQLCHAR 0 100 "," 2 Col2 SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 "," 3 Col3 ""
4 SQLCHAR 0 100 "\r\n" 4 Col4 SQL_Latin1_General_CP1_CI_AS
,如果你想了解更多關於非XML格式的文件。該簡單的例子會是這樣,請謹慎使用該formatting.Click這個Link。 根據您的需要,請更改格式文件。
我創建了一個示例表tblMember
(請根據自己的方式來改變,像列名,數據類型等。記住(如數據類型,ChaterLength等)你必須改變targetFormat.fmt
文件太)
CREATE TABLE tblMember
(
Col1 nvarchar(50),
Col2 nvarchar(50) ,
Col3 nvarchar(50) ,
Col4 nvarchar(50)
);
然後根據你的方式(使用批量插入下面的查詢其與整數值)
Col1中的前面加一個字符「d」現在
INSERT INTO tblMember(Col1,Col2,Col3,Col4)
(
select 'D'+t1.Col1 AS Col1,t1.Col2,t1.Col3,t1.Col4
from openrowset(bulk 'C:\target-c.txt'
, formatfile = 'C:\targetFormat.fmt'
, firstrow = 1) as t1
where t1.Col1 not like '%[^0-9]%' --Not Like Letter Number mixed (123, 456)
UNION
select t1.Col1,t1.Col2,t1.Col3,t1.Col4
from openrowset(bulk 'C:\target-c.txt'
, formatfile = 'C:\targetFormat.fmt'
, firstrow = 1) as t1
where t1.Col1 like '%[^0-9]%'--Like Letter Number mixed (H24, H25)
)
,如果你選擇你的表,你會得到這個(我曾嘗試和它的工作的罰款)
這裏是你的答案您可以排序的列,如果你想。它非常簡單,只需將查詢保存在第一個括號中,並按照您的方式進行排序或格式化即可。