将 CSV 文件导入 SQL Server

2023-12-28

我正在寻求帮助以导入.csv使用以下命令将文件存入 SQL ServerBULK INSERT我有几个基本问​​题。

Issues:

  1. CSV 文件数据可能有,(逗号)之间(例如:描述),那么我怎样才能使导入处理这些数据呢?

  2. 如果客户端从 Excel 创建 CSV,则带有逗号的数据将包含在""(双引号)[如下例]那么导入如何处理这个问题?

  3. 我们如何跟踪某些行是否包含错误数据,导入会跳过? (导入是否会跳过不可导入的行)

以下是带有标题的 CSV 示例:

Name,Class,Subject,ExamDate,Mark,Description
Prabhat,4,Math,2/10/2013,25,Test data for prabhat.
Murari,5,Science,2/11/2013,24,"Test data for his's test, where we can test 2nd ROW, Test."
sanjay,4,Science,,25,Test Only.

以及要导入的SQL语句:

BULK INSERT SchoolsTemp
FROM 'C:\CSVData\Schools.csv'
WITH
(
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',  --CSV field delimiter
    ROWTERMINATOR = '\n',   --Use to shift the control to next row
    TABLOCK
)

基于 SQL Server CSV 导入

1)CSV文件数据可能有,(逗号)之间(例如: 描述),那么如何导入处理这些数据呢?

Solution

如果您正在使用,(逗号)作为分隔符,则无法区分作为字段终止符的逗号和数据中的逗号。我会使用不同的FIELDTERMINATOR like ||。代码看起来像这样,这将完美地处理逗号和单斜杠。

2) 如果客户从 Excel 创建 csv,则具有的数据 逗号包含在" ... "(双引号)[如下 示例] 那么导入如何处理这个问题呢?

Solution

如果您使用批量插入,则无法处理双引号,数据将被 用双引号插入行中。 将数据插入表后,您可以将这些双引号替换为 ''.

update table
set columnhavingdoublequotes = replace(columnhavingdoublequotes,'"','')

3)我们如何跟踪某些行是否有错误数据,导入会跳过? (导入是否会跳过不可导入的行)?

Solution

要处理由于数据或格式无效而未加载到表中的行,可以是 处理使用错误文件属性 http://msdn.microsoft.com/en-us/library/ms188365.aspx,指定错误文件名,它将写入行 错误文件有错误。代码应该看起来像。

BULK INSERT SchoolsTemp
    FROM 'C:\CSVData\Schools.csv'
    WITH
    (
    FIRSTROW = 2,
    FIELDTERMINATOR = ',',  --CSV field delimiter
    ROWTERMINATOR = '\n',   --Use to shift the control to next row
    ERRORFILE = 'C:\CSVDATA\SchoolsErrorRows.csv',
    TABLOCK
    )
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 CSV 文件导入 SQL Server 的相关文章

  • 有没有任何工具可以查看针对数据库运行的查询?

    是否有任何工具可以检查 asp net 或 sql server 并报告针对数据库运行的所有查询 我问这个问题的原因是我正在一个项目中使用 Linq 并且想要仔细检查它对每个页面实际执行的操作 理想情况下 我想在浏览器中查看页面并获得为创建
  • 如何使用 aerospike 加载器在 aerospike 中加载嵌套的 csv 文件?

    我已将 JSON 文件转换为 CSV 格式 现在使用 aerospike 加载器将 CSV 加载到 Aerospike 中 我可以为简单的结构执行此操作 但如何修改 allDatatype json 的内容以在 Aerospike 中加载嵌
  • T-SQL参数嗅探重新编译计划

    我有 SQL 命令 exec sp executesql N SELECT TOP 10 FROM mytableView WHERE Name LIKE Value0 ORDER BY Id DESC N Value0 varchar 5
  • Nodejs 中的 tail-stream 模块不打印文件的最后一条记录

    我正在使用 tail stream 从 csv 文件获取数据 并将每个 csv 记录转换为 json 格式并打印它 但是尾流不会打印文件的最后一行 而是将其保留为缓冲区 如果我更新文件 则从上一个最后一行 缓冲的最后一行 到更新的最后一行
  • 使用 unnest() 返回行?

    我尝试在完成后返回一组行UPDATE 像这样的东西 UPDATE Notis new noti SET notis noti record type FROM SELECT FROM Notis WHERE user id 2 FOR UP
  • 通过 R 连接到 Azure SQL

    下面的代码允许我通过 R 连接到 Azure SQL 服务器 但是 我只能访问 主 数据库 而不能访问我在下面创建的两个数据库 表格显示为空白 有什么想法吗 谢谢 library RODBC library dplyr library DB
  • 如何在oracle中预测和转义单引号'

    假设我有一个列值aaa gh它会在 oracle 中抛出错误 提示 sql 命令未正确结束 我的问题是如果我不知道有多少 在我的价值范围内 我如何才能安全地逃脱它们 最好的方法是使用引用字符串文字技术 http lalitkumarb wo
  • 删除 SQL 中重复的字段条目

    无论如何 我可以删除某个表中的所有重复条目 users 这是我拥有的条目类型的示例 我必须说一下桌子users由3个字段组成 ID user and pass mysql query DELETE FROM users WHERE or d
  • 是否值得为 SqlServer 查找表使用tinyint 而不是 int 呢?

    在 SqlServer 2005 中设计查找表 枚举 时 如果您知道条目数永远不会变得很高 是否应该使用tinyint 而不是 int 我最关心的是性能 尤其是索引的效率 假设您有这些代表性表格 Person PersonId int PK
  • 找出每个玩家最长的满分连续记录

    我得到以下结果SELECT查询与ORDER BY player id ASC time ASC在 PostgreSQL 数据库中 player id points time 395 0 2018 06 01 17 55 23 982413
  • 执行 SELECT 或 INSERT

    我想写一些类似的东西CASE以我想要的方式在 PostgreSQL 中声明SELECT从表中 如果什么也没找到 我想INSERT改为放入表中 我的示例表allocated ideas看起来像这样 challenge id user id i
  • 删除每行列中重复的 GPS 坐标

    我有一列包含 GPS 坐标 每行都有一组地理多边形坐标 大多数线路都有重复的 GPS 坐标 一列中的经度和纬度完全重合 Example 多多边形 23 453411011874813 41 74245395132344 23 4539726
  • Web SQL 将数据插入多行

    我尝试在 Web SQL 数据库中一次将变量插入多行 但使用我所知的所有方法时 我收到错误 INSERT INTO tab a b VALUES v1 v2 v3 v4 gt gt could not prepare statement 1
  • MySQL 布尔模式匹配对中间词不返回任何内容

    我在 MySQL 数据库中使用 Match Against 时遇到问题 希望有人能提供帮助 这是我的数据库中的数据示例 id name 1 really bitter chocolate 2 soft cheese 当我运行此查询时 SEL
  • SQL Server 中临时表的使用

    这是一个悬而未决的问题 但我真的很想听听人们的意见 我很少使用显式声明的临时表 表变量或常规 tmp 表 因为我相信不这样做会导致更简洁 可读和可调试的 T SQL 我还认为 在需要时 例如当您在查询中使用派生表时 SQL 可以比我更好地利
  • SQL 中的链表

    在 MySQL 数据库中存储链接列表的最佳方法是什么 这样插入就很简单 即 您不必每次都重新索引一堆内容 并且可以轻松地按顺序拉出列表 使用 Adrian 的解决方案 但不是增加 1 而是增加 10 甚至 100 然后可以按照要插入的内容之
  • 找到帖子链接、每个标签对应的相关标签并在用户级别进行回答

    继续我之前的question https stackoverflow com questions 60967044 retrieve count of total no of answers corresponding to each ta
  • 如何使用JSqlParser向sql添加where条件?

    我想用JSqlParser向sql添加where条件 例如 Before select from test table where a 1 group by c After select from test table where a 1
  • SQL - 每个级别都有记录的递归树层次结构

    尝试使用 SAS 据我所知 不支持WITH RECURSIVE 在 SQL 中创建经典的层次结构树 这是现有表中的简化数据结构 USER ID SUPERVISOR ID 因此 要构建层次结构 您只需递归连接 x 次即可获取您要查找的数据
  • 查找至少有 2 名员工的部门

    我需要做sql问题将显示至少有 2 人的所有部门 SELECT department name FROM department INNER JOIN employee ON department id employee department

随机推荐

  • 使用 ResXResourceReader 时如何判断资源是嵌入文件还是嵌入字符串

    我有一个单独的应用程序 用于拼写检查我的 resx 文件 作为预构建事件运行 但是 如果 resx 文件包含文本文件 例如 xml 我的应用程序将加载该文件并尝试对其进行拼写检查 这并不是我真正想要它做的 有没有办法从 ResXResour
  • apt-get 错误:找不到“docker-ce”的版本“5:19.03.4~3-0~ubuntu-bionic”

    文档 https docs docker com install linux docker ce ubuntu 提供安装特定版本的语法docker ce sudo apt get install docker ce
  • 在 Linux 上为 Qt 应用程序获取 root 访问权限的正确方法

    Good day 背景 我正在为 Linux 系统创建一个 OpenVPN 包装应用程序 该应用程序已接近完成 我遇到了一个小障碍 OpenVPN 需要 root 访问权限才能修改路由表 添加和删除路由 这就是事情变得有点模糊和混乱的地方
  • Java语法解释-getMenuInflater()

    刚刚下载了 android studio 我正在使用大书呆子牧场 Android 编程指南来学习诀窍 当您启动 android studio 时 此代码已经在主活动文件中 Override public boolean onCreateOp
  • React 状态变量值显示为 null

    我正在尝试访问状态变量的值 但当我更改日期时它似乎为空 但如果我更改任何其他输入字段 我不会将其变为空 这里是link https stackblitz com edit react 6wbchf file src 2FApp js到 st
  • 如何在 J2ME 中分割字符串?

    如何在 J2ME 中有效地分割字符串 有一个StringTokenizer http download oracle com javase 1 4 2 docs api java util StringTokenizer html or S
  • 将 const char 转换为数组

    我正在尝试将 const char 转换为 char 这是我的代码 bool check const char word char temp 1 50 temp word return true 它是一个传入 const char 的函数
  • 为什么 ++i 不 || ++j && ++k 给出期望值

    我想知道为什么下面代码中k的值为1 I think i j k按照以下顺序执行 i j k 所以 在第一个片段中 i j i是真的 所以 j没有被评估 所以i 2 j 1 接下来 在第二个片段中 true k so k被评估 然后k 2 i
  • CUDA、cuPrintf 导致“未指定的启动失败”?

    我有一个内核 它以不同的网格大小运行两次 我的问题是 cuPrintf 当我没有的时候cudaPrintfInit 在内核运行之前和cudaPrintfDisplay stdout true and cudaPrintfEnd 内核运行后
  • RazorGenerator 无法看到自定义 cshtml 帮助程序

    我的 RazorGenerator 遇到问题 它无法编译使用我的自定义帮助程序的视图 App Code ViewHelper cshtml helper test System Web Mvc HtmlHelper html h4 Test
  • 单选按钮水平对齐

    如何使这两个单选按钮水平对齐 无论我如何尝试 它们都会保持垂直对齐或遍布各处 截至目前 它们是垂直对齐的 但我需要左侧的标签和右侧的转盘并靠近在一起 fieldset legend Payment Method legend div cla
  • Python Catboost:多类 F1 分数自定义指标

    如何找到多类 Catboost 分类器每个类的 F1 分数 我已经读过文档 https catboost ai docs concepts python reference catboostclassifier html和github 仓库
  • AngularJS 调用 REST 服务时回调如何工作?

    我正在学习 AngularJS 和 REST 代码示例使用这个词callback在认证功能中重复 回调 是 JavaScript 或 Angular 中的关键字吗 或者是callback只是在此代码中创建的自定义变量 如何callback在
  • 在 MVC2 中使用 FormsAuthenticationTicket cookie 自定义 IIdentity 和 IPrincipal

    我目前正在尝试在 ASP NET MVC2 Web 应用程序中实现一些自定义安全性 我正在尝试做一些非常简单的事情 如下面的代码所示 但由于某种原因 如果我使用 Authorize Roles Admins 我的控制器操作之一的属性 检查C
  • 同时构建许多类似的 Android .apk 文件?

    我有一个 Android 项目 我需要从中构建许多 apk apk 彼此之间仅在以下几个方面有所不同 Android 清单文件中有一些彼此不同的值 某些 apk 可能会排除 res 文件夹中的某些文件 不同的包名 自动构建所有这些不同的 a
  • 实体框架,代码优先。调用时子对象不会填充

    我首先要掌握 EF 代码 当我在代码中调用对象时 我的域模型设计似乎不支持自动 填充 对象的子对象 Model public class Car Key DatabaseGenerated DatabaseGeneratedOption I
  • 在 LINQ 中合并 2 个列表

    我有两个自定义对象列表 List1 Year Month ValueA List2 Year Month ValueB 我想要获得第三个列表 并将两者合并 List3 Year Month ValueA ValueB 在 LINQ VB N
  • CUDA/C - 在内核函数中使用 malloc 会产生奇怪的结果

    我是 CUDA C 的新手 也是堆栈溢出的新手 这是我的第一个问题 我试图在内核函数中动态分配内存 但结果出乎意料 我读到在内核中使用 malloc 会大大降低性能 但无论如何我都需要它 所以我首先尝试使用一个简单的int array 只是
  • React-bootstrap-typeahead labelKey 打字稿

    我有与埃里吉奥对此问题的回答中讨论的相同问题 但从未回答过 使用 Typescript 反应 AsyncTypeahead https stackoverflow com questions 56170309 react asynctype
  • 将 CSV 文件导入 SQL Server

    我正在寻求帮助以导入 csv使用以下命令将文件存入 SQL ServerBULK INSERT我有几个基本问 题 Issues CSV 文件数据可能有 逗号 之间 例如 描述 那么我怎样才能使导入处理这些数据呢 如果客户端从 Excel 创