【问题标题】:BULK INSERT is not working correctly批量插入无法正常工作
【发布时间】:2013-09-30 11:37:09
【问题描述】:

我使用批量插入到 SQL Server Management Studio 2008 R2 中,将文本 UTF-8 文件中的 10 个单词插入到单个列中。

但是,单词显示不正确,我在某些单词前面有多余的空格。

注意:到目前为止,没有一个答案能解决我的问题。 :(

SCREENSHOT OF THE PROBLEM

【问题讨论】:

  • 如果您的数据完整性看起来不错,除了额外的空格,最糟糕的情况就是修剪结果。
  • 你的文本文件的编码是什么?
  • @Szymon UTF-8,检查问题中的链接,您会找到所有信息。
  • 你的问题解决了吗

标签: sql sql-server sql-server-2008 tsql bulkinsert


【解决方案1】:

如果您没有使用正确的排序规则(语言设置),则可能会出现此问题。您需要使用适当的排序规则才能以正确的格式显示您的数据。 更多详情请查看链接http://technet.microsoft.com/en-us/library/ms187582(v=sql.105).aspx

【讨论】:

  • 检查文件的编码。
  • column 是 nvarchar(50),file 是 UTF-8,还是一样的错误。
【解决方案2】:

您也可以尝试使用不同的行终止符:

bulk insert table_name
from 'filename.txt' WITH (ROWTERMINATOR='\n')

【讨论】:

【解决方案3】:

看这个帖子How to write UTF-8 characters using bulk insert in SQL Server?

引用:你不能。你应该首先使用一个 N 类型的数据字段,转换 您的文件为 UTF-16,然后将其导入。数据库不支持 UTF-8。

原始答案

查看你的文本文件的编码。应该是utf8。否则,这可能会导致问题。

用记事本打开,文件->另存为并选择编码

在此之后尝试批量导入

其次,确保列数据类型是 nvarchar 而不是 varchar。另见here

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2020-03-26
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多