Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SCOPE_IDENTITY कैसे शून्य हो सकती है जब @@ IDENTITY नहीं है?

यहां एक उदाहरण दिया गया है कि कैसे SCOPE_IDENTITY() शून्य होगा लेकिन @@ पहचान का मान होगा:

FYI करें, SCOPE_IDENTITY() के साथ एक ज्ञात बग है:https:/ /connect.microsoft.com/SQLServer/feedback/ViewFeedback.aspx?FeedbackID=328811

पहचान के साथ आपकी सबसे अच्छी शर्त OUTPUT INTO का उपयोग करना है, यह आईडी के एक सेट को कैप्चर कर सकता है और SCOPE_IDENTITY() बग के अधीन नहीं है:

declare @x table (tableID int identity not null primary key, datavalue varchar(10))
declare @y table (tableID int, datavalue varchar(10))

INSERT INTO @x values ('aaaa')
INSERT INTO @x values ('bbbb')
INSERT INTO @x values ('cccc')
INSERT INTO @x values ('dddd')
INSERT INTO @x values ('eeee')


INSERT INTO @x
    (datavalue)
    OUTPUT INSERTED.tableID, INSERTED.datavalue     --<<<<OUTPUT INTO SYNTAX
    INTO @y                                         --<<<<OUTPUT INTO SYNTAX
SELECT
    'value='+CONVERT(varchar(5),dt.NewValue)
    FROM (SELECT id as NewValue from sysobjects where id<20) dt
    ORDER BY dt.NewValue


select * from @x
select * from @y


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PSExec के लिए अनुमतियाँ SQL कार्य से चलती हैं

  2. एक sql सर्वर संग्रहीत प्रक्रिया को अतुल्यकालिक रूप से कैसे निष्पादित करें और यह सुनिश्चित करें कि यह पूरा हो गया है

  3. OPENQUERY का उपयोग कर SQL सर्वर लिंक्ड सर्वर के माध्यम से DB2 (V4R5M0) से x पंक्तियों का चयन करने का प्रयास करने में त्रुटि

  4. दो SQL सर्वर डेटाबेस की तुलना करने के लिए एक निःशुल्क टूल क्या है?

  5. यूडीएफ बनाम प्रत्यक्ष एसक्यूएल प्रदर्शन