簡體   English   中英

SQL Server批量插入 - “無法批量加載。 格式文件的未知版本“

[英]SQL Server bulk insert - “Cannot bulk load. Unknown version of format file”

更新:我使用的是SQL Server 12.0.2269.0版,但是BCP為版本13生成了一個腳本。更改了這個並刪除了錯誤,但命令無論如何都無法正常工作。 結果是(0 row(s) affected)

我收到以下錯誤:

Msg 4820,Level 16,State 1,Line 1
無法批量加載。 格式文件“file.fmt”的未知版本。

從這個批量插入命令:

BULK INSERT Hello
FROM 'C:\data.csv'
WITH (
    FORMATFILE='C:\file.fmt'
)

要生成.fmt文件,我按照本指南操作:

https://msdn.microsoft.com/en-us/library/ms191516.aspx

file.fmt ,底部為空行:

13.0
20
1       SQLCHAR             0       11      "\t"     1     person_nr                                  Finnish_Swedish_CI_AS
2       SQLCHAR             0       50      "\t"     2     fornamn                                    Finnish_Swedish_CI_AS
3       SQLCHAR             0       50      "\t"     3     efternamn                                  Finnish_Swedish_CI_AS
4       SQLCHAR             0       50      "\t"     4     adress                                     Finnish_Swedish_CI_AS
5       SQLCHAR             0       50      "\t"     5     co_adress                                  Finnish_Swedish_CI_AS
6       SQLCHAR             0       10      "\t"     6     postnr                                     Finnish_Swedish_CI_AS
7       SQLCHAR             0       50      "\t"     7     postadress                                 Finnish_Swedish_CI_AS
8       SQLCHAR             0       12      "\t"     8     bevakad                                    ""
9       SQLCHAR             0       41      "\t"     9     limit                                      ""
10      SQLCHAR             0       24      "\t"     10    upplysning_datum                           ""

BCP命令生成格式文件:

bcp [Database].[dbo].[Hello] format nul -T -n -f "C:\file.fmt"

bcp [Database].[dbo].[Hello] format nul -c -f "C:\file.fmt" -T

還有其他人經歷過這個嗎?

是的,我經歷過這個。

對您而言,簡單的解決方案是編輯格式文件並將13.0更改為12.0

我在桌面上安裝了最新的SSMS並運行了bcp導出腳本時遇到了這個問題。 我得到了與你完全相同的錯誤。 我的格式文件有14.0,我的SQL Server數據庫是13.0(2016)。 只需編輯格式文件中的版本號即可解決加載錯誤。

注意:我在我的bcp命令中添加了-V130參數,我不再有這個問題了。 您可能希望將-V120添加到bcp導出中。

  1. 將格式文件從.FMT重命名為.txt
  2. 在文件末尾添加一個空行
  3. 在查詢中將文件擴展名從.FMT更改為.txt並運行它:

格式文件基本上只是一個將一些信息傳遞給SQL的文件,無論擴展名如何。

我仍然不確定為什么這總是有效的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM