त्रुटि के बिना INSERT रिकॉर्ड के मूल रूप से 2 अलग-अलग तरीके हैं:
1) जब IDENTITY_INSERT बंद है। प्राथमिक कुंजी "आईडी" वर्तमान में नहीं होनी चाहिए
2) जब IDENTITY_INSERT चालू होता है। प्राथमिक कुंजी "आईडी" वर्तमान में होना चाहिए
निम्न तालिका से निम्न उदाहरण के अनुसार एक पहचान प्राथमिक कुंजी के साथ बनाया गया:
CREATE TABLE [dbo].[Persons] (
ID INT IDENTITY(1,1) PRIMARY KEY,
LastName VARCHAR(40) NOT NULL,
FirstName VARCHAR(40)
);
1) पहले उदाहरण में, आप IDENTITY_INSERT के बंद होने पर एक त्रुटि प्राप्त किए बिना तालिका में नए रिकॉर्ड डाल सकते हैं। PRIMARY KEY "ID" जरूरी नहीं कि "INSERT INTO" स्टेटमेंट्स से PRESENT निकाला जाए और एक यूनिक आईडी वैल्यू अपने आप जुड़ जाए । यदि ID इस मामले में INSERT से मौजूद है, तो आपको त्रुटि मिलेगी "तालिका में स्तंभ की पहचान के लिए स्पष्ट मूल्य सम्मिलित नहीं किया जा सकता है ..."
SET IDENTITY_INSERT [dbo].[Persons] OFF;
INSERT INTO [dbo].[Persons] (FirstName,LastName)
VALUES ('JANE','DOE');
INSERT INTO Persons (FirstName,LastName)
VALUES ('JOE','BROWN');
टेबल [Dbo] के बाहर [लोग] होंगे:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
2) दूसरे उदाहरण में, जब IDENTITY_INSERT चालू होता है, तो आप एक त्रुटि प्राप्त किए बिना तालिका में नए रिकॉर्ड सम्मिलित कर सकते हैं। PRIMARY KEY "ID" "INSERT INTO" विवरण से तब तक जारी रहती है जब तक ID मान मौजूद नहीं होता है : यदि ID इस मामले में INSERT से मौजूद नहीं है, तो आपको त्रुटि मिलेगी। स्पष्ट मान होना चाहिए पहचान कॉलम तालिका के लिए निर्दिष्ट ... "
SET IDENTITY_INSERT [dbo].[Persons] ON;
INSERT INTO [dbo].[Persons] (ID,FirstName,LastName)
VALUES (5,'JOHN','WHITE');
INSERT INTO [dbo].[Persons] (ID,FirstName,LastName)
VALUES (3,'JACK','BLACK');
टेबल [Dbo] के बाहर [लोग] होंगे:
ID LastName FirstName
1 DOE Jane
2 BROWN JOE
3 BLACK JACK
5 WHITE JOHN