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

SQL सर्वर किसी पहचान कॉलम में मान कैसे उत्पन्न करता है?

आप तालिका में एक आदेश मानने का सामान्य भ्रम बना रहे हैं। तालिकाओं का कोई क्रम नहीं है। केवल परिणामों में क्रम होता है, जो तब तक अनिश्चित होता है जब तक कि कोई स्पष्ट ORDER BY निर्दिष्ट न किया गया हो।

आप एक अलग प्रश्न पूछ सकते हैं:समवर्ती सम्मिलन के मामले में पहचान उत्पन्न मूल्य कैसे निर्दिष्ट किया जाता है? उत्तर सरल है:इससे कोई फर्क नहीं पड़ता . और अगर आप ऑर्डर के बारे में कोई धारणा बनाते हैं तो आपका कोड टूट जाता है। वही अंतराल के लिए जाता है। आपका आवेदन काम करना चाहिए, भले ही उत्पन्न पहचान पूरी तरह से यादृच्छिक हो, और सही ढंग से लिखा गया आवेदन होगा काम अगर पहचान पूरी तरह से यादृच्छिक है। SCOPE_IDENTITY() का इस्तेमाल करें अंतिम डाली गई पहचान को पुनः प्राप्त करने के लिए। बेहतर अभी भी, OUTPUT का उपयोग करें INSERT . का खंड , यह बहु-पंक्ति सम्मिलन के लिए भी काम करता है।

रिकॉर्ड के लिए:पहचान उस क्रम में उत्पन्न होती है जिस पर संचालन लॉग स्ट्रीम .




  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 सर्वर में sys.columns, sys.system_columns और sys.all_columns के बीच अंतर

  3. टी-एसक्यूएल ISNULL() स्ट्रिंग को छोटा क्यों कर रहा है और COALESCE नहीं है?

  4. SQL सर्वर:पैरामीटर के आधार पर संग्रहीत कार्यविधि परिणामों को तालिका में सम्मिलित करें

  5. IN क्लॉज के साथ डायनेमिक क्वेरी में मदद चाहिए