如何在SQL Server中使用批量插入写入UTF-8字符?

2023-11-26

我正在对 sqlserver 进行批量插入,但它没有正确地将 UTF-8 字符插入数据库。数据文件包含这些字符,但执行批量插入后数据库行包含垃圾字符。

我的第一个怀疑是格式文件的最后一行:

10.0
3
1 SQLCHAR  0  0  "{|}"  1 INSTANCEID ""
2 SQLCHAR  0  0  "{|}"  2 PROPERTYID ""
3 SQLCHAR  0  0  "[|]"  3 CONTENTTEXT "SQL_Latin1_General_CP1_CI_AS"

但是,读完之后这个官方页面在我看来,这实际上是SQL Server 2008版本中通过插入操作读取数据文件时的一个错误。我们使用的是2008 R2版本。

该问题的解决方案或至少是解决方法是什么?


我在寻找批量插入特殊字符的解决方案之前来到这里。 不喜欢 UTF-16 的解决方法(这会使 csv 文件的大小增加一倍)。 我发现你绝对可以,而且非常简单,不需要格式文件。 这个答案适用于其他正在寻找相同答案的人,因为它似乎没有在任何地方得到很好的记录,而且我相信这对于非英语国家的人来说是一个非常常见的问题。解决办法是: 只需在批量插入的 with 语句中添加 CODEPAGE='65001' 即可。 (65001=UTF-8 的代码页号)。 可能不适用于 Michael O 建议的所有 unicode 字符,但至少它非常适合拉丁语扩展、希腊语和西里尔语,可能还有许多其他字符。

注意:MSDN 文档说不支持 utf-8,不要相信,对我来说这在 SQL Server 2008 中工作得很好,但是没有尝试其他版本。

e.g.:

BULK INSERT #myTempTable 
FROM  'D:\somefolder\myCSV.txt'+
WITH 
    ( 
        CODEPAGE = '65001',
        FIELDTERMINATOR = '|',
        ROWTERMINATOR ='\n'
    );

如果所有特殊字符都在 160-255(iso-8859-1 或 windows-1252)内,您还可以使用:

BULK INSERT #myTempTable 
FROM  'D:\somefolder\myCSV.txt'+
WITH 
    ( 
        CODEPAGE = 'ACP',
        FIELDTERMINATOR = '|',
        ROWTERMINATOR ='\n'
    );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在SQL Server中使用批量插入写入UTF-8字符? 的相关文章

  • 当附加触发器时,Linq-to-sql 插入和更新失败

    我最近在 linq to sql 方面遇到了一些问题 问题在于 当我们将触发器附加到事件时 它 认为 插入和更新失败 一个例子可以是一行 当一行被更改时 附加一个触发器将 LastUpdated 冒号设置为当前时间 这将导致 linq to
  • 使用 DISTINCT 进行查询需要很长时间

    我正在使用 Microsoft Access 2003 我的项目中的一个表单需要很长时间才能向用户显示 这是适用的查询 SELECT DISTINCT tb KonzeptDaten DFCC tb KonzeptDaten OBD Cod
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • 跳过行:将数据从 SSIS 导出到 Excel 文件

    我正在尝试使用 SSIS 将数据从 SQL Server 数据库导出到 Excel 文件中 我希望从第 6 行插入数据 第 5 行有标题 我可以映射标题名称Excel 目标编辑器 通过编写 SQL 命令到 SQL 表头 SELECT FRO
  • TransactionScope 是否需要开启 DTC 服务?

    根据我的阅读 为了在 NET 中使用 TransactionScope 您需要运行 Windows 中的分布式事务协调器服务 我有那个服务关掉 并且我的应用程序似乎运行相同并且回滚事务没有问题 我错过了什么吗 它如何能够发挥作用呢 我正在运
  • 将表值参数与 SQL Server JDBC 结合使用

    任何人都可以提供一些有关如何将表值参数 TVP 与 SQL Server JDBC 一起使用的指导吗 我使用的是微软提供的6 0版本的SQL Server驱动程序 我已经查看了官方文档 https msdn microsoft com en
  • 为什么 ISNUMERIC('.') 返回 1?

    最近我在 SQL Server 中使用 ISNUMERIC 时遇到了一个问题 导致找到了这段代码 SELECT ISNUMERIC 这会返回 1 如 true 所示 难道不应该像 false 一样返回 0 吗 See Numeric 损坏了
  • 表情符号未正确保存在 mongodb 中

    我正在将 Twitter 和 Instagram 上的表情符号保存到我的 mongodb 数据库中 但是当我显示从数据库中提取的数据时 表情符号看起来像这样破损了 在将数据保存到 mongodb 期间我需要做一些不同的事情吗 我是 mong
  • SSIS 文件系统任务错误:分配给变量的值的类型...与当前变量类型不同

    好的 我有一个相对简单的SSIS 包 DTSDesigner100 Visual Studio 2008 版本9 0 30729 4462 QFE NET Framework 3 5 SP1 在包的 SSIS 控制流的末尾是文件系统任务这是
  • 重建数据库中的所有索引

    我有一个非常大的 SQL Server 2008 R2 数据库 1 5TB 并将在同一个表中的列之间复制一些数据 我被告知该架构有大量索引 并且想知道是否有默认查询或脚本可以重建所有索引 是否也被建议同时更新统计数据 30 个表中的每一个都
  • “必须声明标量变量”错误[重复]

    这个问题在这里已经有答案了 必须声明标量变量 Id SqlConnection con new SqlConnection connectionstring con Open SqlCommand cmd new SqlCommand cm
  • 从完整路径解析文件名和路径

    我需要使用 SQL 查询从完整路径解析文件名和文件路径 例如 完整路径 SERVER D EXPORTFILES EXPORT001 csv FileName Path EXPORT001 csv SERVER D EXPORTFILES
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • 从头开始构建 OLAP 解决方案时应该注意什么?

    我在一家运行基于 MS SQL 数据库服务器的软件产品的公司工作 多年来我已经用 PHP 开发了 20 30 个相当高级的报告 直接从数据库获取数据 这非常成功 人们对此感到高兴 但它有一些缺点 对于新的变化 它可能是相当开发密集型的 用户
  • 什么是多维 OLAP CUBE 并给出超过 3 维的多维数据集示例

    由于我是 SSAS 的新手 一直在阅读有关多维 OLAP 多维数据集的文章 并努力理解多维数据集的概念 据说虽然术语 多维数据集 表示三个维度 但多维数据集最多可以有 64 个维度 你能解释一下这在立方体上怎么可能吗 除了 3 Dim 示例
  • SQL Server - SQL 替换整个数据库中所有表中的所有列

    这是一个很遥远的事情 我猜这个问题没有简单的答案 但是 我继承了一个数据库 其中填充了一些可怕的数据 许多包含描述的行都有回车符 这意味着当我们 BCP 输出数据时 它会带有回车符 我的问题 有没有办法在 MS SQL Server 中对整
  • Razor C# - 从数据库获取数据

    我正在使用 WebMatrix 我创建了一个数据库并放置了一个包含几行数据的表 我可以连接到它并获取数据WebGrid 但它只提供了一种使用表格输出数据的方法 这是我的 shows cshtml 代码 var db Database Ope
  • 如何安全地使用保留的 SQL 名称?

    我正在使用 Cakephp 3 使用 sqlserver 作为数据源服务器 我确信我的数据库连接没有问题 因为 home ctp 提示我已连接到我的数据库 并且我还使用迁移插件来创建我的表 似乎使用它没有问题这些工具 但是在我烘焙 MVC
  • SSRS ReportViewer 与 XML 嵌入数据源相关的问题

    我有 C WPF 应用程序 我想在 ReportViewer 控件中显示 SSRS 报告 本地报告文件中嵌入了 XML 数据源 从 SQL Server Business Intelligence Development Studio 运行
  • 如何在sql server 2008R2中将单个单元格拆分为多个列?

    我想将每个名称拆分为各个列 create table split test value integer Allnames varchar 40 insert into split test values 1 Vinoth Kumar Raj

随机推荐

  • python高效子字符串搜索[重复]

    这个问题在这里已经有答案了 可能的重复 string find 在 CPython 中是如何实现的 我在堆栈溢出中阅读了许多文章 比较了子字符串搜索的性能 例如Python字符串搜索效率 这是搜索子字符串最有效的方法吗 python 中的子
  • RecyclerView:如何创建插入动画效果?

    我有一个ReyclerView与一个LinearLayoutManager and an Adapter
  • 如何将MySQLi结果集加载到二维数组中?

    我的 mysqli 结果集有问题 我有一个包含一堆消息的表 表中的每一行代表一条消息 我有一些列 例如 ID 标题 正文和 公共 公共列包含布尔值 指定消息是向所有人显示还是仅向发布者显示 我有一个页面 我想在其中显示所有公共消息 如果您单
  • 无法将下载的文件存储在相关文件夹中

    我用 python 结合 selenium 编写了一个脚本 用于从网页下载一些文档文件 以 doc 结尾 我不想使用的原因requests or urllib下载文件的模块是因为我当前正在玩的网站没有任何真实的网址连接到每个文件 它们是 J
  • 大图像的语义分割

    我正在处理数量有限的大尺寸图像 每个图像都可以有3072 3072像素 为了使用 FCN 或 U net 训练语义分割模型 我构建了一个大样本的训练集 每个训练图像是128 128 在预测阶段 我所做的是将大图像切成小块 与训练集相同128
  • Spring:如何使用@Value注释注入内联字符串列表[重复]

    这个问题在这里已经有答案了 如何使用注入字符串值列表 Value注解 我正在使用 Spring 4 1 2 我试过了 Value value top person organizationalPerson user private List
  • 从另一个 Activity 导航回来时,Android Activity onCreate 被调用两次

    我有一个应用程序 可以在用户在 webview 活动上使用 OAuth 进行身份验证后生成音乐 看起来像这样 主要播放器活动 OAuth 活动 返回主要播放器活动 但是 当从 OAuth 活动中调用 onCreate 方法时 会调用两次 导
  • 如何通过Delphi 7上传文件到dropbox?

    我尝试将文件上传到保管箱 我使用 dropbox apihttps www dropbox com developers reference api files POST procedure TDropbox Upload2 const U
  • 读/写 QObject

    I think我可以写一个QObject像这样利用Q PROPERTYs QDataStream operator lt lt QDataStream ds const Object obj for int i 0 i
  • ASP.NET 应用程序保持运行时浏览器超时

    我遇到了一种情况 ASP NET 需要很长时间才能生成网页回复 超过 2 小时 这是由于代码隐藏运行了一段时间 非常长 缓慢的循环 浏览器 IE 和 Firefox 停止等待回复 大约一个小时后 并给出一般的无法显示网页错误 类似于您尝试导
  • 使用 boost::random 作为 std::random_shuffle 的 RNG

    我有一个程序 使用来自 boost random 的 mt19937 随机数生成器 我需要进行 random shuffle 并希望为此生成的随机数来自此共享状态 以便它们可以相对于梅森扭曲器先前生成的数字具有确定性 我尝试过这样的事情 v
  • 不先查询就更新记录?

    假设我查询数据库并加载项目列表 然后 我在详细视图表单中打开其中一个项目 而不是从数据库中重新查询该项目 而是从列表中的数据源创建该项目的实例 有没有办法可以更新数据库记录而不获取单个项目的记录 这是我现在的做法示例 dataItem it
  • jquery 在 contenteditable div 中设置光标位置

    问题的旧版本如下 经过更多研究后 我决定重新表述这个问题 和以前一样 问题是 我需要聚焦一个 contenteditable div 而不突出显示文本 在 Chrome 中直接聚焦突出显示文本 我意识到人们通过重置文本区域中的插入符位置来解
  • 如何使用 Maven 在 Vaadin 7 中仅编译必要的小部件?

    我是 Vaadin 框架的新手 我看起来非常有趣 使用 eclipse 和 Maven 来开发和构建我的应用程序 我发现很烦人 每次我进行 mvn clean install 时都会花费很长时间来构建应用程序 我发现这是因为它编译了整套小部
  • 如何以编程方式设置 rw- r-- r-- 权限?

    我正在开发一个应用程序 可以将应用程序的数据恢复到 data data packageName 恢复文件后 我将权限设置为 rw r r 我是这样设置的 public int chmod File path int mode throws
  • 快速将 XML 转换为 Excel [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 将 XML 中的 112K 行转换为 Excel 视图的最快 最省力 而不是超级性能 方法是什么 为什么这么复杂 只需使用 文件 gt 打开 打开文件 选择 xml 并加载它 看
  • 消除无样式内容的闪烁

    如何停止网页上出现无样式内容 FOUC 使用 css 样式最初隐藏某些页面元素 然后使用 javascript 在页面加载后将样式更改回可见的问题是 未启用 javascript 的人将永远无法看到这些元素 所以这是一个不会正常降级的解决方
  • php中的正则表达式:取最短匹配

    我正在尝试做一个 PHP 正则表达式 但我找不到正确的方法 想象一下我有这个字符串 你好 我的 名字是彼得 和 我想吃巧克力 我想取 和 之间的部分 但如果我使用preg match string 它只返回一个字符串 名字是彼得 和 我想吃
  • Url.Action 从 Route 属性映射了错误的链接

    这是目标控制器和操作 RoutePrefix Editor public class EditorController Controller HttpGet Route id int public ActionResult Edit int
  • 如何在SQL Server中使用批量插入写入UTF-8字符?

    我正在对 sqlserver 进行批量插入 但它没有正确地将 UTF 8 字符插入数据库 数据文件包含这些字符 但执行批量插入后数据库行包含垃圾字符 我的第一个怀疑是格式文件的最后一行 10 0 3 1 SQLCHAR 0 0 1 INST