最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

SQLServerBulkInsert只需要部分字段时的方法

来源:动视网 责编:小采 时间:2020-11-09 07:10:48
文档

SQLServerBulkInsert只需要部分字段时的方法

SQLServerBulkInsert只需要部分字段时的方法:根据一般做法的话,导出部分字段时没有办法生成格式化XML文件,所以导入时就没有办法格式化导入数据。 我想到两点,1.手工修改格式化XML文件,2.创造一个能生成格式化XML文件的中间对象。 在MSDN中寻找方法时,突然想到可以使用视图来做中间对象,于是就搭一
推荐度:
导读SQLServerBulkInsert只需要部分字段时的方法:根据一般做法的话,导出部分字段时没有办法生成格式化XML文件,所以导入时就没有办法格式化导入数据。 我想到两点,1.手工修改格式化XML文件,2.创造一个能生成格式化XML文件的中间对象。 在MSDN中寻找方法时,突然想到可以使用视图来做中间对象,于是就搭一


根据一般做法的话,导出部分字段时没有办法生成格式化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。

您可能感兴趣的文章:

  • mssql server 存储过程里,bulk insert table from ''路径+文件'',路径固定,文件名不固定的实现方法
  • 使用BULK INSERT大批量导入数据 SQLSERVER
  • sql server Bulk Insert命令详细
  • 文档

    SQLServerBulkInsert只需要部分字段时的方法

    SQLServerBulkInsert只需要部分字段时的方法:根据一般做法的话,导出部分字段时没有办法生成格式化XML文件,所以导入时就没有办法格式化导入数据。 我想到两点,1.手工修改格式化XML文件,2.创造一个能生成格式化XML文件的中间对象。 在MSDN中寻找方法时,突然想到可以使用视图来做中间对象,于是就搭一
    推荐度:
    标签: 办法 部分 sql
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top