当前位置:  数据库>sqlserver

sql server自动增长标识导入数据的问题

    来源: 互联网  发布时间: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自增长标识导致导入数据失败的处理方法
  • sql自动增长标识导致导入数据问题的解决方法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sql server 创建主键(uuid和自增长)
  • sql分类汇总及Select的自增长脚本
  • sql server日志收缩脚本及解决日志增长过快的问题
  • SQL Server设置主键自增长列(使用sql语句实现)
  • SQL Server文件自增长 xxx的数值对于“Value”无效的解决方法
  • SQL Server 设置主键自增长列的常用代码
  • 在ejb的entityBean中怎么实现sql server中的自增长字段的主键问题???/
  • sql server日志文件自动增长导致连接超时的解决方法
  • sql自增长设置与删除的深入分析
  • sql语句查询数据库中的表名/列名/主键/自动增长值实例
  • MySQL rownumber SQL生成自增长序号使用介绍
  • SQL自动增长的ID号从新位置开始的设置方法
  • 解析SQL 表结构信息查询 含主外键、自增长
  • 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代码


  • 站内导航:


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

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

    浙ICP备11055608号-3