SQL Server 插入数据时自增加列如何指定数值

SQL Server 表在导入数据时,有时须要将自增加列指定数值,来保证导入先后的数据彻底一致,如何实现?sql

SQL Server 提供了方法:spa

SET IDENTITY_INSERT,容许将显式值插入表的标识列中

参考文档:SET IDENTITY_INSERT | Miscosoft Docscode

 

语法:server

SET IDENTITY_INSERT [ database_name . [ schema_name] . ] table { ON | OFF }

用法:blog

-- 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

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

 

 注意事项:ci

  • INSERT INTO语句必须输入列名,不然执行时会报错“仅当使用了列列表而且 IDENTITY_INSERT 为 ON 时,才能为表‘Tool’中的标识列指定显式值”
  • 一个会话中只有一个表的 IDENTITY_INSERT 属性能够设置为 ON,在设置为ON、插入数据后,还须要设置该表 IDENTITY_INSERT为 OFF。
相关文章
相关标签/搜索