SqlServer关闭与启用标识(自增加)列

1 --添加新列 2 ALTER TABLE TABLENAME ADD ID int 3 --赋值 4 UPDATE TABLENAME SET ID = IDENTITY_ID 5 --删除标识列 6 ALTER TABLE TABLENAME DROP COLUMN IDENTITY_IDtable

 

通常来讲大概有2种较好的方案.test

1.经过添加列来替换标识列tab

替换法 
1 --添加新列
2 ALTER TABLE TABLENAME ADD ID int
3 --赋值
4 UPDATE TABLENAME SET ID = IDENTITY_ID
5 --删除标识列
6 ALTER TABLE TABLENAME DROP COLUMN IDENTITY_ID
 di

2.显示值插入(修改会话中的IDENTITY_INSERT ),临时性 ,不完全该表列性质data

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

 

显式值插入
  

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(...)
6 SET IDENTITY_INSERT test OFF      --开启
 

 

关于这种方式,须要注意以下:

A.任什么时候候,一个会话中只有一个表的 IDENTITY_INSERT 属性能够设置为 ON ,想修改其余表,必须将前一个ON状态改回OFF

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

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

相关文章
相关标签/搜索