將一般檔案匯入 SQL 精靈
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體
如需 [匯入及匯出精靈] 的相關內容,請參閱 使用 SQL Server 匯入及匯出精靈匯入及匯出資料。
[匯入一般檔案精靈] 是一個簡單的方法,可將一般檔案 (.csv、.txt) 的資料複製到您資料庫中的新資料表。 [匯入一般檔案精靈] 支援以逗號分隔和固定寬度格式的檔案。 本概觀將說明使用此精靈的理由、如何找到此精靈,並提供簡單的範例供您參考。
為什麼要使用此精靈?
建立此精靈的目的在於改善目前的匯入體驗,運用稱之為 Program Synthesis using Examples (PROSE) 的智慧型架構。 對於缺乏專業網域知識的使用者來說,匯入資料往往是件複雜、容易出錯且沉悶的工作。 此精靈簡化了匯入程序,只要選取輸入檔與唯一的資料表名稱,PROSE 架構就會為您處理其餘的部分。
PROSE 會分析輸入檔中的資料模式,來推斷資料行名稱、類型及分隔符號等項目。 此架構能夠理解檔案的結構,並會處理一切繁雜的作業程序,讓使用者省下大筆心力。
Prerequisites
SQL Server Management Studio (SSMS) v17.3 或更新版本可提供此功能。 請確認目前使用的是最新版本。 您可以於此處找到最新版本。
開始使用
若要存取 [匯入一般檔案精靈],請遵循這些步驟進行:
- 開啟 [SQL Server Management Studio] 。
- 連線至 SQL Server 資料庫引擎或 localhost 的執行個體。
- 展開 [資料庫],在資料庫上以滑鼠右鍵按一下 (在下方範例進行測試),指向 [工作],然後選取 [匯入資料] 上方的 [匯入一般檔案]。
若要深入了解精靈的不同功能,請參照下列教學課程:
教學課程
在本課程中,您可隨意使用自己的一般檔案。 否則,本教學課程會使用下方來自 Excel 的 CSV,您也可任意複製。 如果您使用此 CSV,請將其標題命名為 example.csv,並記得將其儲存為 CSV,並置於方便的位置 (例如桌面)。
概觀:
步驟 1:存取精靈及簡介頁面
遵循此處的說明存取精靈。
精靈的第一頁是歡迎頁面。 若不想再看到此頁面,可選取 [不要再顯示此開始頁面]。
步驟 2:指定輸入檔
選取 [瀏覽] 以選取輸入檔。 依預設,該精靈會搜尋 .csv 與 .txt 檔案。 PROSE 會偵測檔案格式為逗號分隔或固定寬度 (不論副檔名為何)。
新的資料表名稱應為唯一,若名稱重複,精靈不會允許您前往下一步。
步驟 3:預覽資料
精靈會產生預覽,讓您檢視前 50 個資料列。 若有任何問題,請選取 [取消],否則請進入下一頁。
步驟 4:修改資料行
該精靈會找出其認為正確的資料行名稱、資料類型等等。若這些欄位不正確 (例如,資料類型應為 float,而非 int),可於此處編輯。
偵測到空值的資料行將會核取 [允許 Null]。 不過,如果預期資料行中有 Null,但資料行未核取 [允許 Null] 時,則可在這裡更新資料表定義,以允許單一或所有資料行中的 Null。
準備完成後請繼續進行。
步驟 5:摘要
這只是顯示目前設定的摘要頁面。 若有問題,可返回先前的區段。 否則,請選取 [完成] 以嘗試匯入處理程序。
步驟 6:結果
此頁面會指出匯入是否成功。 若出現綠色核取記號就表示成功,否則可能需要檢閱設定或輸出檔,以了解錯誤。
疑難排解
匯入一般檔案精靈會根據前 200 個資料列來偵測資料類型。 在一般檔案中進一步的資料不符合自動偵測到之資料類型的情況下,將會在匯入期間發生錯誤。 錯誤訊息如下所示:
Error inserting data into table. (Microsoft.SqlServer.Prose.Import)
The given value of type String from the data source cannot be converted to type nvarchar of the specified target column. (System.Data)
String or binary data would be truncated. (System.Data)
減輕此錯誤的策略:
- 在修改資料行步驟中擴充資料類型大小 (例如 Nvarchar 資料行的長度),可能會補償一般檔案其餘部分之資料中的變化。
- 在修改資料行步驟中啟用錯誤報告 (特別是較小的數字),將顯示一般檔案中的哪些資料列包含不符合所選資料類型的資料。 例如,在第二個資料列引進錯誤的一般檔案中,執行匯入並產生範圍為 1 的錯誤報告,可提供特定的錯誤訊息。 直接在位置上檢查檔案,可根據已識別資料列中的資料,為資料類型提供更具目標的變更。
Error inserting data into table occurred while inserting rows 1 - 2. (Microsoft.SqlServer.Prose.Import)
The given value of type String from the data source cannot be converted to type float of the specified target column. (System.Data)
Failed to convert parameter value from a String to a Double. (System.Data)
目前,匯入工具使用基於系統的啟用代碼頁上的編碼。 在大部分機器上,這會預設為 ANSI。
相關內容
深入了解精靈。
- 深入了解匯入其他來源。 若想要匯入一般檔案之外的項目,請參閱 使用 SQL Server 匯入及匯出精靈進行 SQL 匯入及匯出資料。。
- 深入了解連線至一般檔案來源。 若想要尋找連線至一般檔案來源的詳細資訊,請參閱連線至一般檔案資料來源(SQL Server 匯入及匯出精靈)。
- 深入了解 PROSE。 若想尋找此精靈使用之智慧型架構的概觀,請參閱 PROSE SDK。