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 的設置是在執行或運行時設置的

相關文章
相關標籤/搜索