当前位置:  数据库>sqlserver

sql自增长标识导致导入数据失败的处理方法

    来源: 互联网  发布时间:2014-08-29

    本文导语:  对于一个设了自动增长标识的数据表来说,它的字段的值是由数据库自动设置的;导数据时很麻烦。 导数据时,想把标识字段的数据也导进来,如何处理呢? 为大家介绍二种方法,供参考: 1、用数据库管理工具在界面将表...

对于一个设了自动增长标识的数据表来说,它的字段的值是由数据库自动设置的;导数据时很麻烦。
导数据时,想把标识字段的数据也导进来,如何处理呢?

为大家介绍二种方法,供参考:
1、用数据库管理工具在界面将表的自动增长标识去除,导完数据,再在界面里改回来。(这种方法麻烦,且要动数据表设置中,不推荐)
2、用SET IDENTITY_INSERT OFF和SET IDENTITY_INSERT ON(推荐这种方法)
SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }
database_name
指定的表所在的数据库的名称。

schema_name
表所属架构的名称。

table
包含标识列的表的名称。

注释
任何时候,一个会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON。如果某个表已将此属性设置为 ON,则对另一个表发出 SET IDENTITY_INSERT ON 语句时,SQL Server 将返回一个错误信息,指出 SET IDENTITY_INSERT 已设置为 ON,并报告已将其属性设置为 ON 的表。

如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用。

SET IDENTITY_INSERT 的设置是在执行或运行时设置的,而不是在分析时设置的。

权限
用户必须拥有表,或对表具有 ALTER 权限。

下面举一个具体的例子,供大家参考。
创建一个包含标识列的表,并说明如何使用 SET IDENTITY_INSERT 设置来填充由 DELETE 语句导致的标识值中的空隙。
 

代码示例:

USE AdventureWorks2012;
GO
-- Create tool table.
CREATE TABLE dbo.Tool(
ID INT IDENTITY NOT NULL PRIMARY KEY,
Name VARCHAR(40) NOT NULL
)
GO
-- Inserting values into products table.
INSERT INTO dbo.Tool(Name) VALUES ('Screwdriver')
INSERT INTO dbo.Tool(Name) VALUES ('Hammer')
INSERT INTO dbo.Tool(Name) VALUES ('Saw')
INSERT INTO dbo.Tool(Name) VALUES ('Shovel')
GO

-- Create a gap in the identity values.
DELETE dbo.Tool
WHERE Name = 'Saw'
GO

SELECT *
FROM dbo.Tool
GO

-- Try to insert an explicit ID value of 3;
-- should return a warning.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO

-- SET IDENTITY_INSERT to ON.
SET IDENTITY_INSERT dbo.Tool ON
GO

-- Try to insert an explicit ID value of 3.
INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel')
GO

SELECT *
FROM dbo.Tool
GO
-- Drop products table.
DROP TABLE dbo.Tool
GO


    
 
 

您可能感兴趣的文章:

  • t-sql/mssql用命令行导入数据脚本的SQL语句示例
  • 解析MYSQL 数据库导入SQL 文件出现乱码的问题
  • PHP导入sql文件三种方法
  • SQL SERVER导入、导出文本文件的例子
  • 使用php语句将数据库*.sql文件导入数据库
  • SQL Server导入导出数据时最常见的一个错误解决方法
  • 跨服务器查询导入数据的sql语句
  • 解析PL/SQL Developer导入导出数据库的方法以及说明
  • mysql source 命令导入大的sql文件的方法
  • SQL Server2008数据库导入导出兼容性处理方案
  • php导入SQL文件(示例代码)
  • SQL Server 海量数据导入的最快方法
  • 文本、Excel、Access数据导入SQL Server2000的方法
  • Mysql命令行导入sql数据
  • 用SQL语句解决mysql导入大数据文件的问题
  • 把excel表格里的数据导入sql数据库的两种方法
  • 格式导致的Excel导入sql出现异常的解决方法
  • Mysql命令行导入sql数据的代码
  • Excel导入Sql Server出现Null的解决方法
  • PHP处理SQL脚本文件导入到MySQL的代码实例
  • sql server获得新记录标识列值的二种方法
  • SQL Server手工插入标识列的方法
  • SQL Server修改标识列方法 如自增列的批量化修改
  • 在SQL Server数据库中为标识(IDENTITY)列插入显式值
  • sql自动增长标识导致导入数据问题的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • SQL2000个人版 应用程序正常初始化失败0乘以C0000135失败
  • IP连接SQL SERVER失败(配置为字符串失败)图文解决方法
  • 录入的字符串包含'这样的字符,拼装的sql也用到',提交失败。
  • sql server 2005数据附加失败报错3456的解决办法
  • SQL Server连接失败错误及解决第1/5页
  • sql server维护计划自动备份数据库作业执行失败会自动生成abc82作业的解决办法
  • sql server附加数据库后出现只读或失败的解决方法
  • 也是jdbc连接SQL Server2000问题.别人都是这样连阿,为什么我的却失败。help!
  • sql server 2000管理单元初始化失败的解决方法
  • SQL Server 服务由于登录失败而无法启动
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍
  • SQL语句实现SQL Server 2000及Sql Server 2005日志收缩(批量)
  • java命名空间java.sql接口rowid的类成员方法: tostring定义及介绍
  • SQL客户端管理工具 SQuirreL SQL Client
  • java命名空间javax.sql.rowset接口joinrowset的类成员方法: getwhereclause定义及介绍
  • 如何处理此错误:java.sql.SQLException: [Microsoft][ODBC SQL Server Driver]没有执行可选特性
  • java命名空间java.sql接口statement的类成员方法: execute定义及介绍
  • sql2005 大数据量检索分页的sql代码
  • java命名空间java.sql接口resultset的类成员方法: getcursorname定义及介绍
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • java命名空间java.sql接口resultsetmetadata的类成员方法: getcolumntype定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3