【问题标题】:Collation on Bulk Insert批量插入排序规则
【发布时间】:2017-05-22 18:36:21
【问题描述】:

我一直在为我的公司解决一个流程,我找到了问题的根源。

我有一个 CSV 文件,我必须从中导入一些数据,但某些字段包含带有 de Ñ 字的单词,SQL Server 不断将其替换为类似 的字符我将列排序规则更改为 COLLATE Modern_Spanish_CI_AS 但是当我执行批量插入它不关心指定的排序规则并在任何地方替换它。

你们知道批量 inster 尊重给定排序规则的方式吗?

我使用的代码如下。

EXEC ('BULK INSERT #TMPP FROM ''' + @PATH +
    ''' WITH (FIELDTERMINATOR = ''|'', FIRSTROW = 1, ROWTERMINATOR = ''\n'', KEEPNULLS);');

【问题讨论】:

  • #TMPP 的 DDL 是什么样的?您希望该列成为NVARCHAR()
  • NVARCHAR(120) COLLATE Modern_Spanish_CI_AS是这样的。

标签: sql-server bulkinsert collate


【解决方案1】:

我找到了解决方案,我需要在 WITH 子句中指定CODEPAGE = 1252。代码就这样结束了。

EXEC ('BULK INSERT #TMPP FROM ''' + @PATH +
        ''' WITH (FIELDTERMINATOR = ''|'', FIRSTROW = 1, ROWTERMINATOR = ''\n'', KEEPNULLS, CODEPAGE = 1252);');

希望您以后发现它有用。

【讨论】:

    猜你喜欢
    • 2021-09-10
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 2012-09-11
    • 1970-01-01
    • 2018-12-19
    相关资源
    最近更新 更多