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

SQL सर्वर में किसी पहचान कॉलम पर वर्तमान पहचान मान वापस करने के लिए IDENT_CURRENT() का उपयोग करें

SQL सर्वर में, आप T-SQL का उपयोग कर सकते हैं IDENT_CURRENT() किसी निर्दिष्ट तालिका के लिए उत्पन्न अंतिम पहचान मान या किसी पहचान स्तंभ पर दृश्य को वापस करने के लिए कार्य करता है। उत्पन्न अंतिम पहचान मूल्य किसी भी सत्र और किसी भी क्षेत्र के लिए हो सकता है।

सिंटैक्स

वाक्य रचना इस प्रकार है:

IDENT_CURRENT('table_or_view' )

table_or_view तर्क तालिका या दृश्य का नाम है जिसका पहचान मूल्य लौटाया गया है।

उदाहरण 1 - मूल उपयोग

यहां एक बुनियादी कोड उदाहरण दिया गया है।

सिलेक्ट IDENT_CURRENT('Pets') AS परिणाम;

परिणाम:

+----------+| परिणाम ||----------|| 3 |+----------+

इस मामले में, वर्तमान पहचान मान 3 है।

यहां एक और क्वेरी है जो अधिक तालिकाओं की जांच करती है।

चुनें IDENT_CURRENT('Pets') AS पेट्स, IDENT_CURRENT('BestFriends') AS bestFriends, IDENT_CURRENT('Cities') AS City;

परिणाम:

+----------+----------+| पालतू जानवर | बेस्टफ्रेंड्स | शहर ||----------+---------------+----------|| 3 | 121 | 180 |+-----------+---------------+----------+

उदाहरण 2 - स्कीमा सहित

आप स्कीमा को तर्क में भी शामिल कर सकते हैं।

सिलेक्ट IDENT_CURRENT('dbo.Pets') AS परिणाम;

परिणाम:

+----------+| परिणाम ||----------|| 3 |+----------+

उदाहरण 3 - डालने के बाद

इस उदाहरण में, मैं पालतू जानवर . में दो और पंक्तियाँ सम्मिलित करता हूँ तालिका, फिर चुनें IDENT_CURRENT() फिर से।

INSERT INTO Pets (PetName)VALUES ('ब्रायन'), ('Alf'); चयन IDENT_CURRENT('dbo.Pets') AS परिणाम;

परिणाम:

+----------+| परिणाम ||----------|| 5 |+----------+

यहाँ तालिका कैसी दिखती है:

पालतू जानवरों से *चुनें;

परिणाम:

+-----------+-----------+| पेटीड | पेटनाम ||-----------+---------------|| 1 | होमर || 2 | फेलिक्स || 3 | रफ || 4 | ब्रायन || 5 | अल्फ |+-----------+-----------+

पेटआईड कॉलम पहचान कॉलम है। इसका बीज मूल्य 1 है, और इसका वृद्धि मूल्य भी 1 है।

इस तालिका को बनाने के लिए उपयोग किए गए कोड के लिए SQL सर्वर में पहचान () संपत्ति का उपयोग कैसे करें देखें।

उदाहरण 4 - डेटाबेस में सभी तालिकाओं की जांच करें

यहां डेटाबेस में सभी तालिकाओं को उनके पहचान बीज मूल्य के लिए जांचने का एक उदाहरण दिया गया है।

 INFORMATION_SCHEMA से TABLE_SCHEMA, TABLE_NAME, IDENT_CURRENT(TABLE_SCHEMA + '.' + TABLE_NAME) को IDENT_CURRENT के रूप में चुनें। 

परिणाम:

+----------------+----------------+--------------- -----+| TABLE_SCHEMA | TABLE_NAME | IDENT_CURRENT ||---------------------+----------------+--------------- ----|| डीबीओ | बाधा परीक्षण | 17 || डीबीओ | घटना | 1 || डीबीओ | स्कोरबोर्ड | 8 || डीबीओ | पालतू जानवर | 5 || डीबीओ | बेस्टफ्रेंड्स | 121 || डीबीओ | शहर | 180 || डीबीओ | रंग | 6 || डीबीओ | t6 | 1 || डीबीओ | t7 | 100 |+----------------+----------------+--------------- ----+

रिटर्न वैल्यू के बारे में

IDENT_CURRENT() . के लिए वापसी मान numeric(@@MAXPRECISION,0)) है . इसका मतलब है कि यह एक निश्चित सटीकता और पैमाने के साथ एक संख्यात्मक डेटा प्रकार है।

सटीकता सर्वर पर निर्भर करती है। @@MAXPRECISION तर्क दशमलव और संख्यात्मक डेटा प्रकारों द्वारा उपयोग किए गए स्तर को वर्तमान में सर्वर में सेट करता है। सटीक दशमलव अंकों की अधिकतम कुल संख्या निर्दिष्ट करता है (इसमें दशमलव बिंदु के बाईं और दाईं ओर वाले अंक शामिल हैं)।

दूसरा तर्क 0 . के पैमाने को निर्दिष्ट करता है , जिसका अर्थ है कि दशमलव स्थान के दाईं ओर कोई दशमलव अंक नहीं हैं।

आप अपने सर्वर पर वर्तमान में निर्धारित सटीक स्तर को खोजने के लिए निम्न क्वेरी चला सकते हैं:

चुनें @@MAX_PRECISION AS [अधिकतम सटीक];

मेरे सिस्टम पर यह रहा परिणाम:

+-----------------+| मैक्स प्रेसिजन ||-----------------|| 38 |+-----------------+

पहचान कॉलम बनाना

आप IDENTITY() . का उपयोग करके एक पहचान कॉलम बना सकते हैं आपके CREATE TABLE . में संपत्ति या ALTER TABLE बयान।

पहचान कॉलम बनाने का दूसरा तरीका है IDENTITY() समारोह। यह आपको SELECT INTO . का उपयोग करते समय एक पहचान कॉलम बनाने में सक्षम बनाता है डेटा को एक स्रोत से दूसरे स्रोत में स्थानांतरित करने के लिए कथन।

@@IDENTITY और SCOPE_IDENTITY() के साथ अंतर

IDENT_CURRENT() फ़ंक्शन @@IDENTITY . के समान है और SCOPE_IDENTITY() , लेकिन कुछ अंतर हैं।

@@IDENTITY और SCOPE_IDENTITY() किसी भी . में जेनरेट किया गया अंतिम पहचान मान लौटाएं मौजूदा सत्र में तालिका हालाँकि, इन दोनों कार्यों के बीच अंतर यह है कि SCOPE_IDENTITY मान केवल वर्तमान दायरे में लौटाता है, जबकि @@IDENTITY एक विशिष्ट दायरे तक सीमित नहीं है।

IDENT_CURRENT() दूसरी ओर, या . के दायरे तक सीमित नहीं है सत्र। बल्कि, यह एक निर्दिष्ट तालिका . तक सीमित है . यह किसी भी सत्र और किसी भी दायरे में किसी विशिष्ट तालिका के लिए उत्पन्न पहचान मान देता है।

SQL सर्वर में IDENT_CURRENT बनाम @@ पहचान बनाम 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. एकता से डेटाबेस से कैसे जुड़ें

  2. टीएसक्यूएल लेनदेन के भीतर प्रयास करें/पकड़ें या इसके विपरीत?

  3. स्पॉटलाइट क्लाउड अलार्म कस्टमाइज़ करें

  4. अधिक उन्नत क्वेरी चलाते समय ऑब्जेक्ट बंद होने पर ऑपरेशन की अनुमति नहीं है

  5. अल्पविराम से अलग किए गए मान को कॉलम में कैसे विभाजित करें