2
今天,我有一個從固定寬度的文件批量插入這樣的:SQL - 批量插入和數據類型
BULK INSERT #TBF8DPR501
FROM 'C:\File.txt' WITH (
FORMATFILE = 'C:\File.txt.xml'
,ROWTERMINATOR = '\n'
)
格式文件只是設置每個字段的寬度,體積後插入臨時表,我製作了一個INSERT INTO X SELECT FROM temp
來轉換批量無法轉換的一些列。
我的問題是,是否有可能使批量插入能值轉換,如:
- 格式日期
dd.MM.yyyy
ORddMMyyyy
- 十進制值這樣
0000000000010022
(它是)
無需將批量插入到臨時表中來轉換值?
我唯一的問題是,現在需要4個小時才能運行(txt與30GB),即時試圖減少這個值只保留在SQL服務器內,沒有什麼可以在SQL內完成?謝謝 – Hamarict
如果你真正的問題是性能問題,你爲什麼要問格式化數據?您是否已閱讀並遵循關於優化批量操作的[documentation](http://msdn.microsoft.com/zh-cn/library/ms190421(v = sql.105).aspx)? – Pondlife
是的,我已經嘗試了大多數優化(批量記錄/鎖定/等),但速度不會改善..到目前爲止,我設法做的是使用openrowset與批量選項..這種方式我設法刪除臨時表並在讀取數據時插入數據。我設法減少了3個小時的時間..不知道我還能做些什麼 – Hamarict