🧰 SQL Server System Functions – @@IDENTITY, SCOPE_IDENTITY(), IDENT_CURRENT()
🔑 Memory में रखें (Definition)
SQL Server में कुछ System Functions होते हैं जो हमें last inserted identity value या अन्य system-level information देते हैं: @@IDENTITY, SCOPE_IDENTITY(), और IDENT_CURRENT() इनमें सबसे लोकप्रिय हैं।
📋 Demo Table
CREATE TABLE Students (
StudentID INT IDENTITY(1,1),
Name NVARCHAR(50)
);
INSERT INTO Students (Name) VALUES ('Amit');
SELECT * FROM Students;
🔹 @@IDENTITY
यह current session में last identity value return करता है, चाहे वह किसी भी scope से आया हो।
INSERT INTO Students (Name) VALUES ('Neha');
SELECT @@IDENTITY AS LastInsertedID;
⚠️ अगर trigger ने भी insert किया, तो उसका ID भी return हो सकता है।
🔹 SCOPE_IDENTITY()
यह उसी scope में last identity value return करता है, जहाँ insert हुआ था। यह सबसे safe method है।
INSERT INTO Students (Name) VALUES ('Raj');
SELECT SCOPE_IDENTITY() AS SafeInsertedID;
🔹 IDENT_CURRENT('TableName')
यह किसी specific table का current identity value return करता है, चाहे session या scope कुछ भी हो।
SELECT IDENT_CURRENT('Students') AS TableCurrentID;
📊 Comparison Table
Function | Scope | Session | Use |
---|---|---|---|
@@IDENTITY | Any | Current | May return value from trigger |
SCOPE_IDENTITY() | Same | Current | Safe after insert |
IDENT_CURRENT() | Any | Any | Table-specific |
🧠 INTERVIEW QUESTIONS (with Answers)
- Q: @@IDENTITY क्या करता है?
Ans: Last identity value देता है किसी भी scope से (trigger सहित)। - Q: SCOPE_IDENTITY() को क्यों ज्यादा secure माना जाता है?
Ans: यह केवल उसी scope का identity देता है जहाँ से insert हुआ। - Q: IDENT_CURRENT() और @@IDENTITY में अंतर?
Ans: IDENT_CURRENT किसी भी session का हो सकता है, @@IDENTITY current session का होता है। - Q: INSERT के बाद identity कैसे पता करें?
Ans: सबसे अच्छा तरीका है – SCOPE_IDENTITY() - Q: क्या trigger से generated identity भी @@IDENTITY में आता है?
Ans: हाँ।
📘 यह पोस्ट Job Oriented Academy द्वारा system-level SQL concepts को simplify करने के लिए बनाई गई है।
0 Comments