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

केवल एक पहचान कॉलम वाली तालिका में पंक्तियों को सम्मिलित करना

यदि आपके पास एक स्तंभ है जो एक पहचान है, तो बस यह करें

INSERT MyTable DEFAULT VALUES;  --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();

यदि आपके पास पहचान नहीं है, तो क्या आप इसे सेट कर सकते हैं? यह सबसे अच्छा तरीका है.. और ऊपर दिए गए SQL का उपयोग करें।

यदि नहीं, तो आप एक नई पंक्ति सम्मिलित करना चाहते हैं

INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable

नोट:

  • अधिक भार में MAX समाधान डुप्लिकेट के साथ विफल हो सकता है
  • SCOPE_IDENTITY, के बाद है तथ्य, पहले नहीं
  • SCOPE_IDENTITY केवल एक IDENTITY कॉलम के साथ काम करता है। IDENT_CURRENT
  • . का उपयोग करके किसी भी मूर्खता की तरह
  • आउटपुट क्लॉज MAX समाधान के लिए SCOPE_IDENTITY को प्रतिस्थापित करता है


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में ऑडिट ट्रेल को लागू करने का सबसे अच्छा तरीका?

  2. SQL सर्वर प्री-लॉगिन हैंडशेक पावती त्रुटि

  3. कैसे ठीक करें "वैकल्पिक तालिका स्विच विवरण विफल" संदेश 4982 (एसक्यूएल सर्वर)

  4. SQL सर्वर में वर्चर (अधिकतम) के लिए NULL मान वापस क्यों नहीं कर रहा है?

  5. SQL सर्वर में एक अस्थायी तालिका बनाएँ