(BULK INSERT)文本导入SQL,字段数量不等.

要把文本数据导入到数据库,本文只有3个字段,数据库表有7个字段,
怎么把文本字段的对应到表的字段,如何用bulk insert来实现?

数据库表
userinfo
id identity,userName,pass,address,phone,email,registerTime

文本格式是
userName,address,phone
hua,湖南,5971898

--SQL2005处理方式:

先在G盘存放一个格式化文件

G:\format.xml

XML code :

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> <? xml version="1.0" ?> < BCPFORMAT xmlns ="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" > < RECORD > < FIELD ID ="1" xsi:type ="CharTerm" TERMINATOR ="," MAX_LENGTH ="20" COLLATION ="Chinese_PRC_CI_AS" /> < FIELD ID ="2" xsi:type ="CharTerm" TERMINATOR ="," MAX_LENGTH ="100" COLLATION ="Chinese_PRC_CI_AS" /> < FIELD ID ="3" xsi:type ="CharTerm" TERMINATOR ="\r\n" MAX_LENGTH ="20" COLLATION ="Chinese_PRC_CI_AS" /> </ RECORD > < ROW > < COLUMN SOURCE ="1" NAME ="userName" xsi:type ="SQLVARYCHAR" /> < COLUMN SOURCE ="2" NAME ="address" xsi:type ="SQLVARYCHAR" /> < COLUMN SOURCE ="3" NAME ="phone" xsi:type ="SQLVARYCHAR" /> </ ROW > </ BCPFORMAT >
SQL code :

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> G:\test.txt userName,address,phone hua,湖南, 5971898 -- SQL SERVER -- 创建表 CREATE TABLE userinfo(id INT identity ,userName varchar ( 20 ), pass varchar ( 20 ),address varchar ( 100 ),phone varchar ( 20 ), email varchar ( 128 ),registerTime datetime ) -- 导入 INSERT INTO userinfo(userName,address,phone) SELECT * FROM OPENROWSET ( BULK ' G:\test.txt ' ,FORMATFILE = ' G:\format.xml ' ,FIRSTROW = 2 ) AS T; -- 查看数据 SELECT * FROM userinfo; /* id userName pass address phone email registerTime ----------- --------- ---------- ----------- ---------- ---------- ------------- 1 hua NULL 湖南 5971898 NULL NULL (1 行受影响) */

--SQL2000处理方式:

先在G盘存放一个格式化文件

G:\format.fmt

FMT code :

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 8.0 3 1 SQLCHAR 0 20 "," 2 userName Chinese_PRC_CI_AS 2 SQLCHAR 0 100 "," 4 address Chinese_PRC_CI_AS 3 SQLCHAR 0 20 "\r\n" 5 phone ""
SQL code

  
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> G:\test.txt userName,address,phone hua,湖南, 5971898 -- SQL SERVER -- 建表 CREATE TABLE userinfo(id int identity ,userName varchar ( 20 ), pass varchar ( 20 ),address varchar ( 100 ),phone varchar ( 20 ), email varchar ( 128 ),registerTime datetime ) -- 导入 BULK INSERT userinfo FROM ' G:\test.txt ' WITH ( FORMATFILE = ' G:\format.fmt ' , FIRSTROW = 2 ) -- 查看数据 SELECT * FROM userinfo; /* id userName pass address phone email registerTime ----------- --------- ---------- ----------- ---------- ---------- ------------- 1 hua NULL 湖南 5971898 NULL NULL (1 行受影响) */
------------------------------------------------------------------------------------------------- 8.0 -- 这个8,表示版本是8.0 3 -- 这个3.表示数据文件中有几列. 第一列的1, 2 ,3表示数据文件的列的序号 而后面的第六列的2, 4 ,5表示userName,Address,phone在表中.是第几列 1 SQLCHAR 0 20 "," 2 userName Chinese_PRC_CI_AS 2 SQLCHAR 0 100 "," 4 address Chinese_PRC_CI_AS 3 SQLCHAR 0 20 "\r\n" 5 phone ""
--------------------------------------------------------------------------------------------------
原贴地址:
http://topic.csdn.net/u/20090913/15/fa2e7e65-73d8-4b64-b6e0-bd583f564d86.html?95717
52、SQL Server数据处理与备份相关问题解析 本文深入解析了SQL Server数据管理和操作中的常见问题,包括备份合规性、ETL技术、分布式查询、数据库转移与SSIS包部署等。针对每个问题,文章提供了详细的解决方案与错误选项分析,并通过总结表格、流程图和实际应用建议帮助读者更好地理解和应用相关技术。旨在提升SQL Server使用者在数据处理、备份、查询和部署等方面的能力,保障数据安全高效处理和系统稳定运行。 阅读详情

相关推荐

29、ETL技术与复制管理全解析

本文深入解析了ETL技术与SQL Server中的复制管理。首先,针对ETL过程中常见的问题,如BCP导出数据、格式文件选择、数据导入失败、分布式事务处理、包部署及动态文件名导入等,提供了详细的解答。其次,通过自测题与答案的形式帮助读者巩固ETL相关知识。随后,全面介绍了复制技术,包括其优势、应用场景、类型、配置步骤、冲突解决策略、安全考虑、性能优化以及监控方法。最后,总结了ETL和复制在SQL Server中的重要性,为数据库管理和数据同步提供技术支持。

info6的博客 59

SQL Server Bulk Insert 只需要部分字段时的方法

上午在找Bulk Insert的资料看,还转了一篇。巧今天下午就用上了,我遇到的需求是导出表A中的N个字段,然后导入到表B的N个字段当中。

遇到问题--mysql--python--pymsql保存数据报错Unknown column ‘logr_dev‘ in ‘field list‘

<think>我们只需要生成一个≤150字的摘要,概括原文主要内容。原文讲的是pymysql批量插入报错1054,原因是SQL语句字段名前后有看见的空格,经排查后清理空格解决。摘要需简洁。</think>使用pymysql批量插入数据时遇错误“Unknown column 'logr_dev'”,排除字段缺失和类型问题后,发现SQL语句中字段名前后存有多余空格,导致解析异常。清理SQL中的空格和换行,并采用多行字符串整理语句后成功解决。

直到世界的尽头 41

BULK INSERT用法详解,文本导入SQL,字段数量不等实例.

Bulk Insert命令详解  BULK INSERT以用户指定的格式复制一个数据文件至数据库表或视图中。语法BULK INSERT [ [ database_name.][ owner ].]{ table_name FROM data_file }    [ WITH        (            [ BATCHSIZE [ = batc

一个世界一个家,我爱中国! 2万+

Sql server 中的bulk insert语句导入TXT或CVS文件数据字段数量相同和相同导入方法)

Sql server 中的bulk insert语句导入TXT或CVS文件数据字段数量相同和相同导入方法)

lizaijinsheng的专栏 923

Bulk insert如何导入部分字段数据

IF OBJECT_ID('Employee') IS NOT NULLDROP TABLE EmployeeGOCREATE TABLE Employee(Id int,Name VARCHAR(100),Designation VARCHAR(100))BULKINSERT EmployeeFROM 'D:\\Test.txt' --location with filenameWITH(F

fredrickhu的专栏 2974

(总结) SQL Server Bulk Insert 批量数据导入

SQL ServerBulk Insert语句可以将本地或远程的数据文件批量导入数据库中,速度非常的快。远程文件必须共享才行,文件路径须使用通用约定(UNC)名称,即"\\服务器名或IP\共享名\路径\文件名"的形式。   * 1. 由于Bulk Insert通常配合格式化文件批量导入数据更方便,所以这里先介绍bcp工具导出格式化文件的方法。 bcp是SQL Server提供的命令行实...

2426

代码生成BULK INSERT语句,批量将txt数据导入Sqlserver2008

需求描述: 1、有一批txt数据,每张表一个txt,文件名以表名命名 2、需要批量导入数据库中,使用BULK INSERT命令可以按表导入 3、利用java代码按表生成BULK INSERT命令,并在sqlserver2008中执行脚本 Java实现代码如下: public static void traverseFolder(String path) { Fi

alex_fung的博客 1102

数据仓库之抽取数据:通过链接服务器获取txt、csv中的数据

  在做数据仓库时,最重要的就是ETL的开发,而在ETL开发中的第一步,就是要从原OLTP系统中抽取数据到过渡区中,再对这个过渡区中的数据进行转换,最后把经过处理的干净的数据加载到数据仓库中。   目标数据库是sql server,现在要从txt、csv文件中抽取数据。 1、开启即席查询 --修改高级参数 sp_configure 'show advanced options',1 g...

SQL Server探索 1504

SQLState = 22008, NativeError =Error = [Microsoft][ODBC Driver 13 for SQL Server]Invalid date format

BCP数据导入失败问题分析与解决 在使用BCP工具进行SQL Server数据同步时,遇到BusOff表导入失败问题,错误提示"Invalid date format"。经过排查发现: 最初怀疑是日期格式或工具问题,但对比历史表BusOffHis可正常导入 检查表结构发现中间库BusOff表(21字段)与生产库(41字段)一致,历史表结构已同步(41字段) 原因是应用系统升级导致BusOff表结构变更,但中间库未同步更新 解决方案:在中间库按新结构重建BusOff表后,BCP和BULK

Mrzhou的博客 801

SQL Server 批量插入数据的两种方法

SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert仅效率低,而且会导致SQL一系统性能问题。下面介绍SQL Server支持的两种批量数据插入方法:Bulk和表值参数(Table-Valued Parameters)。 运行下面的脚本,建立测试数据库和表值参数。 [c-sharp] view plai

yuanyuanispeak的专栏 3223

泛微E-Cology SQL注入漏洞深度复现:从手工测试到自动化利用

SQL注入是一种经典的Web安全漏洞,其原理在于攻击者通过构造恶意输入,使应用程序将用户输入误认为SQL指令的一部分执行,从而操控数据库查询。这种漏洞的技术价值在于它直接威胁到数据的机密性、完整性和可用性,是渗透测试中获取敏感信息、提升权限的关键突破口。在诸如企业协同办公(OA)、内容管理系统(CMS)等复杂Web应用场景中,由于历史代码、参数拼接当等原因,SQL注入风险尤为突出。本文聚焦于企业级应用泛微E-Cology系统,通过手工注入测试与Sqlmap自动化利用相结合的方式,深度剖析一个典型的参数拼接

weixin_33717117的博客 429

错过这5个高级特性,你只用了SQLAlchemy 20%的能力(附真实项目案例)

掌握SQLAlchemy ORM高级用法,解锁数据库操作的真正潜力。本文详解关联查询优化、事件监听、自定义类型等5大特性,适用于高并发与复杂业务场景,提升代码可维护性与性能。真实项目案例解析,值得收藏。

QuickSolve的博客 1134

MySQL问答200

本文涵盖MySQL全栈面试核心内容,包括:基础概念(关系型数据库特性、体系结构);存储引擎对比(InnoDB/MyISAM);索引原B+树、聚簇索引)与优化策略;事务ACID与隔离级别实现;锁机制(行锁、间隙锁)与MVCC原理;日志系统(redo/undo/binlog);SQL优化与执行计划分析;高可用方案(主从复制、分库分表);InnoDB底层机制(Buffer Pool、Checkpoint);以及MySQL 8.0新特性。

weixin_72753562的博客 806

Spring Cloud 学习与实践(16):Elasticsearch 商品搜索、中文分词与索引一致性

当前 已经具备: 商品数据目前保存在 MySQL: 如果只按主键查询商品,MySQL 足够完成: 但当需求变成: 继续只用: 会逐渐遇到几个问题: 本章最终建立: 同时解决: 2、先理解 Elasticsearch 的核心概念 2.1 Elasticsearch 是什么 Elasticsearch 是一个面向搜索和分析的分布式文档数据库。本章最关心的能力是: 它是为了替代当前 MySQL,而是承担同职责:本章始终坚持: 因此: 能简单处理为: 正确方向是: 2.2 Elasticsearch 与

作为一个长者,有必要记录下人生经验 867

高效发现和解决insert字段长度够的报错

早上发现执行的PostgreSQL存储过程报错,错误如下:300-value too long for type character varying(100),一看就是表字段的长度太小,从提示看是,字段是varchar(100)字段长度够。看了具体表: 看了表字段,有好多个字段是varcahr(100): 如下图: 这么多字段v...

zping的博客 1735

sqlserver大批量导入数据,从其他库导入,解决字段一致问题

t后面跟的是数据的分隔符 这是个坑 默认是/t /n 如果数据中含有换行符导入的时候就会失败 所以这里随便写了一个参数,-r, 导入数据的时候就会失败。由于现有项目想从别的系统导入一批新数据数据量庞大且字段一致,可以使用BULK来解决。现在要从B库中将trk_invd表的数据导入到A库中的trk_invd表。建立中间视图 trk_invd_v 查询出自己想要导出的数据。根据A库中的结构导出中间视图的数据。A库中的表比B表多了两个字段。目标库 A 数据源库 B。最后结束的时候把配置关闭。

正的博客 718
上一篇: 类的生命周期
下一篇: 宝宝眼中的世界。。。
iteye_18688
博客等级 码龄8年 19粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值