SQL SERVER 显性插入Identity列值

1 --一般是组合使用,已确保会话中IDENTITY_INSERT的完整状态
2 SET IDENTITY_INSERT TABLENAME ON  --关闭
3 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
4 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
5 INSERT INTO TABLENAME(IDENTYTY_ID,...) VALUES(...)
 SET IDENTITY_INSERT test OFF      --开启
  

关于这种方式,需要注意如下:

A.任何时候,一个会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON ,想修改其他表,必须将前一个ON状态改回OFF

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

C.SET IDENTITY_INSERT 的设置是在执行或运行时设置的

D.INSERT 语句内必须指定列名,否则仍会提示“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表{TABLENAME} 中的标识列指定显式值”

posted @ 2019-05-05 20:19  千年海岩  阅读(329)  评论(0编辑  收藏  举报