博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server Bulk Insert 只需要部分字段时的方法
阅读量:4662 次
发布时间:2019-06-09

本文共 1622 字,大约阅读时间需要 5 分钟。

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

根据一般做法的话,导出部分字段时没有办法生成格式化XML文件,所以导入时就没有办法格式化导入数据。

我想到两点,1.手工修改格式化XML文件,2.创造一个能生成格式化XML文件的中间对象。

在MSDN中寻找方法时,突然想到可以使用视图来做中间对象,于是就搭一个测试下。以下是测试记录:

USE master GO CREATE DATABASE [db_test] GO USE db_test GO CREATE TABLE dbo.T_test(      ID [int] IDENTITY(1,1) NOT NULL,      Code varchar(10) ,      Name varchar(100) ,      Memo nvarchar(500) ,      Memo2 ntext , PRIMARY KEY  (ID)  )  GO --上面创建的表是源数据表,下面创建是要导入数据的表,只有源表的三个字段  Select Code, Name,Memo into dbo.T_test2 from dbo.T_test Where 1=2 --需求就是把表T_test中的Code,Name导入到T_test2。 --接下来,就是生成导入目标表的格式化XML文件,可是MSDN上说只能生成某个对象的格式化XML文件。 --只好建立一个中间对象来达到目的,这里我创建的是一个视图。 --视图只包含需要导入的字段 Create View v_test AS Select Code,Name From dbo.T_test2 --然后就是BCP操作 EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; EXEC sp_configure 'show advanced options', 0; RECONFIGURE; GO EXEC master..xp_cmdshell 'BCP db_test.dbo.v_test format nul -f C:/v_test_fmt.xml -x -c -T -S MyPC\MyDB' GO EXEC master..xp_cmdshell 'BCP "select Code, Name from db_test.dbo.T_test" queryout C:/t_test.data -f C:/v_test_fmt.xml -T -S MyPC\MyDB' GO --格式化文件和数据文件都有了,就成了. BULK INSERT db_mgr.dbo.v_t1 FROM N'C:/t_test.data' WITH  (      FORMATFILE = N'C:/v_test_fmt.xml'  ) GO EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 0; EXEC sp_configure 'show advanced options', 0; RECONFIGURE; GO Drop Database db_test GO

环境是sql2005。

--------------------------------------------

如蒙转载或引用,请保留以下内容:

Joe's Blog:

转载于:https://www.cnblogs.com/Joe-T/archive/2011/10/05/2199498.html

你可能感兴趣的文章
计算机解疑补漏之理解流水线的几点要义
查看>>
dubbo 之filter使用
查看>>
eclipse快捷键调试总结
查看>>
MySQL系列之二四种隔离级别及加锁
查看>>
js实时计算价格
查看>>
【JZOJ5094】【GDSOI2017第四轮模拟day3】鸽子 计算几何+floyd
查看>>
jenkins安装以及部署项目
查看>>
Eclipse 向 IDEA 过渡
查看>>
Kolmogorov–Smirnov test(KS)
查看>>
JWT(json web token)
查看>>
微信开发创业交流QQ群列表
查看>>
微信小程序开发(5) 2048游戏
查看>>
LOJ-10106(有向图欧拉回路的判断)
查看>>
day06 statcic 文档的生成 静态代码块 单例设计模式
查看>>
独生子女政策对老年丧子的家庭来说,确实太残酷了
查看>>
我们绝不赞同也不鼓励赖宁这样的孩子去救火
查看>>
Python之ftp下载文件测试代码
查看>>
Flume简介与使用(三)——Kafka Sink消费数据之Kafka安装
查看>>
网页结构和表现形式
查看>>
saltstack系列(一)——介绍与安装
查看>>