当前位置: 首页 > 知识库问答 >
问题:

SQL Server 2012从CSV批量插入临时表

空成天
2023-03-14
USE DATABASE5000

CREATE TABLE #tempTable1
(
    ID INT,
    CD VARCHAR(50), 
    ESD DATETIME,
    EED DATETIME, 
    MiscDate DATETIME, 
    SQ SMALLINT
) 

BULK INSERT #tempTable1
FROM 'C:\Dir\Folder\BestFile.csv';

Msg 7330,级别16,状态2,第1行
无法从链接服务器“(null)”的OLE DB访问接口“BULK”中获取行。

有什么想法吗?谢谢你。

共有1个答案

乜坚成
2023-03-14

您没有指定任何FieldTerminator。默认值实际上是tab。请参阅批量插入文档。

BULK INSERT #tempTable1
FROM 'C:\Dir\Folder\BestFile.csv'
WITH
(
    FIELDTERMINATOR = ','           -- add this
);

根据文档,有一个格式=csv

WITH (FORMAT = 'CSV')

你可以试试。我做了一个快速测试,有一些限制,它似乎不支持带双引号的字符串

 类似资料:
  • 问题内容: 我有一些要导入mySQL的CSV数据文件。我想在shell脚本中进行插入,以便可以将其自动化。但是,我对在脚本中使用明文形式输入用户名和密码感到有些厌倦 我有以下问题: 我对脚本中明文中的uname / pwd的想法感到不满意(反正还是这样,还是我太偏执)?也许我可以为插入表设置仅具有INSERT特权的用户? 数据库表(导入原始数据的数据库表)具有基于表列的唯一键。我尝试导入的数据中也

  • 问题内容: 这似乎很简单,但我坚持使用简单的insert语句。请参见以下内容: 在临时表行中,实际列表是从其他位置动态拉出的(这是出于演示目的)。我收到以下错误消息: 错误代码:1054。“字段列表”中的未知列“ insert_table.resource_id” 现在,我可以在整个temp表上运行一次select,它返回正常值,只是在update语句中失败。我正在MySQL工作台上运行它。完全不

  • 我正在写一个数据挖掘程序,可以批量插入用户数据。 当前SQL只是一个普通的批量插入: 如果发生冲突,如何进行更新?我试过: 但它抛出

  • 问题内容: 下面是csv的示例行 您可以将 KRISHNA KUMAR ASHOKU,AR 视为单个字段,但是由于逗号,它会将KRISHNA KUMAR ASHOKU和AR视为两个不同的字段,尽管它们用“”括起来,但还是没有运气 我试过了 有什么解决方案吗? 问题答案: 答案是:您不能那样做。请参阅http://technet.microsoft.com/zh- cn/library/ms1883

  • 问题内容: 这是我在阅读有关jpa批量插入的几个主题之后创建的简单示例,我有2个持久对象User和Site。一个用户可以拥有多个站点,因此我们在这里有一对多的关系。假设我要创建用户并将多个站点创建/链接到用户帐户。考虑到我愿意为Site对象使用批量插入,代码如下所示。 但是,当我运行此代码时(我将hibernate方式用作jpa实现提供程序),我看到以下sql输出: 所以,我的意思是“真实的”批量

  • 在创建了临时表并声明了数据类型之后; 然后如何插入数据库中物理表中已保存的相关数据?