sqlserver大容量导入数据时保留标识值

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 15:54 点击:

 

可以将包含标识值的数据文件大容量导入到MicrosoftSQL Server 实例中。默认情况下,将忽略导入的数据文件中标识列的值,SQL Server 自动分配唯一值。这些唯一值基于在表创建期间指定的种子和增量值。  

 

如果该数据文件表中的标识符列不包含值,则使用格式化文件来指定导入数据时应跳过表中的标识符列。SQL Server 自动为此列分配唯一值。  

 

若要防止SQL Server 在将数据行大容量导入到表中时分配标识值,请使用相应的保留标识命令限定符。在您指定保留标识限定符后,SQL Server 将在该数据文件中使用标识值。这些限定符如下:  

 

 

 

 

 

 

命令  

   

 

保留标识限定符  

   

 

限定符类型  

   

 

 

 

bcp  

   

 

-E  

   

 

开关  

   

 

 

 

BULK INSERT 

   

 

KEEPIDENTITY  

   

 

参数  

   

 

 

 

INSERT ...SELECT * FROM OPENROWSET(BULK...)  

   

 

KEEPIDENTITY  

   

 

表提示  

   

 

有关详细信息,请参阅bcp 实用工具、BULK INSERT (Transact-SQL)、OPENROWSET (Transact-SQL)、INSERT (Transact-SQL)、SELECT (Transact-SQL) 和表提示(Transact-SQL)。  

 

 

 

示例  

 

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

 

 

   

本主题中的示例使用INSERT ... SELECT * FROM OPENROWSET(BULK...)且保持默认值不变来大容量导入数据。  

   

示例表  

   

 

大容量导入示例需要在dbo 架构下的AdventureWorks2008R2 示例数据库中创建一个名为myTestKeepNulls 的表。若要创建此表,请在SQL Server Management Studio 查询编辑器中,执行以下语句:  

 

 

 

 

 

 

复制  

 

 

USE AdventureWorks2008R2;  

GO  

SELECT * INTO HumanResources.myDepartment   

   FROM HumanResources.Department  

      WHERE 1=0;  

GO  

SELECT * FROM HumanResources.myDepartment;  

   

作为myDepartment 基础的Department 表的IDENTITY_INSERT 设置为OFF。因此,必须指定KEEPIDENTITY 或-E,才能将数据导入到标识列中。  

   

示例数据文件  

   

 

大容量导入示例中使用的数据文件包含从本机格式的HumanResources.Department 表中大容量导出的数据。若要创建数据文件,请在Microsoft Windows 命令提示符下输入以下内容:  

 

 

 

 

 

 

复制  

 

 

bcp AdventureWorks2008R2.HumanResources.Department out myDepartment-n.Dat -n -T  

   

示例格式化文件  

   

 

此大容量导入示例使用XML 格式化文件myDepartment-f-x-n.Xml,该文件使用本机数据格式。此示例使用bcp 进行创建,以从AdventureWorks2008R2 数据库的HumanResources.Department 表生成此格式化文件。在Windows 命令提示符下,输

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1