2012-09-24 40 views
24
CREATE TABLE masterTbl (
id INT IDENTITY(1,1) CONSTRAINT pk_id PRIMARY KEY, 
name VARCHAR(100)) 

INSERT INTO masterTbl VALUES ('ABC', 'XYZ','PQR') 

現在如何手動插入身份?

Select * FROM masterTbl 

結果:

id | name 
--------------------- 
1 | ABC 
2 | XYZ 
3 | PQR 

DELETE FROM masterTbl WHERE id=1 

現在

Select * FROM masterTbl 

結果:

id | name 
--------------------- 
2 | XYZ 
3 | PQR 

現在我想運行:

INSERT INTO masterTbl (id, name) VALUES (1, 'MNO') 

這怎麼可能?

+0

相關(或複製):http://stackoverflow.com/questions/751522/how-to-change-identity列值 - 編程方式 – adatapost

回答

43

在它最簡單的形式,你需要暫時允許身份的插入值

SET IDENTITY_INSERT masterTbl ON 
INSERT INTO masterTbl (id, name) VALUES (1, 'MNO') 
SET IDENTITY_INSERT masterTbl OFF 
+2

請注意,必須使用列列表 – user25064

12

是的,你可以手動設置執行

SET IDENTITY_INSERT masterTbl ON 

然後標識字段插入您的數據

INSERT INTO masterTbl (id, name) VALUES (1, 'MNO') 
...... 

,並記得打電話

SET IDENTITY_INSERT masterTbl OFF 

重新啓用正確的功能