SQL सर्वर में, आप NEWID()
. का उपयोग कर सकते हैं एक अद्वितीय मूल्य बनाने के लिए कार्य।
अधिक विशेष रूप से, यह एक RFC4122-संगत फ़ंक्शन है जो अद्वितीय पहचानकर्ता प्रकार का एक अद्वितीय मान बनाता है .
वह मान जो NEWID()
उत्पादन एक बेतरतीब ढंग से उत्पन्न 16-बाइट GUID (वैश्विक रूप से विशिष्ट पहचानकर्ता) है। इसे यूयूआईडी (यूनिवर्सली यूनिक आइडेंटिफायर) के नाम से भी जाना जाता है।
उदाहरण 1 - मूल चयन विवरण
यहां एक त्वरित SELECT
है स्टेटमेंट जो NEWID()
लौटाता है :
SELECT NEWID() AS Result;
परिणाम:
+--------------------------------------+ | Result | |--------------------------------------| | ab1b299b-9781-48d9-bedc-f238f6f5cc57 | +--------------------------------------+
RFC4122 में 5 संस्करण (या उप-प्रकार) शामिल हैं। मैं बता सकता हूं कि यह उदाहरण RFC4122 संस्करण 4 का उपयोग करता है, क्योंकि 4 संबंधित स्थान पर। संस्करण 4 निर्दिष्ट करता है कि GUID यादृच्छिक रूप से या छद्म-यादृच्छिक रूप से उत्पन्न होता है। अन्य संस्करण GUID उत्पन्न करने के लिए अन्य विधियों का उपयोग करते हैं।
जब आप इस पृष्ठ के सभी उदाहरणों को देखते हैं, तो आप देखेंगे कि वे सभी अद्वितीय हैं, लेकिन वे सभी एक रूप लेते हैं: xxxxxxxx-xxxx-4xxx-xxxx-xxxxxxxxxxxx , जिसका अर्थ है कि वे सभी संस्करण 4 GUID हैं, और इसलिए वे सभी यादृच्छिक रूप से या छद्म-यादृच्छिक रूप से उत्पन्न होते हैं।
उदाहरण 2 - वेरिएबल के साथ NEWID() का उपयोग करना
यहां NEWID()
. का मान डालने का एक उदाहरण दिया गया है एक चर में, फिर उसका चयन करना।
DECLARE @myguid uniqueidentifier = NEWID(); SELECT @myguid AS Result;
परिणाम:
+--------------------------------------+ | Result | |--------------------------------------| | b6cfb25a-3f81-4e5a-a304-a4b44fb5dbeb | +--------------------------------------+
उदाहरण 3 - स्ट्रिंग में कनवर्ट करें
चर मान को एक स्ट्रिंग में बदलने, फिर उसे प्रिंट करने का एक उदाहरण यहां दिया गया है।
DECLARE @myguid uniqueidentifier = NEWID(); PRINT 'Value: '+ CONVERT(varchar(255), @myguid);
परिणाम:
Value: 9A229A64-6FE0-417E-B07D-78444EA7DA5B
उदाहरण 4 - डेटाबेस में डिफ़ॉल्ट मान के रूप में
यहां NEWID()
का उपयोग करने का एक उदाहरण दिया गया है डेटाबेस कॉलम में डिफ़ॉल्ट मान के रूप में।
USE Test; CREATE TABLE Customer ( CustomerId uniqueidentifier NOT NULL DEFAULT NEWID(), CustomerName varchar(70) NOT NULL, ); INSERT Customer (CustomerName) VALUES ('Peter Griffin'), ('Marge Simpson'), ('Borat Schwarzenegger'); SELECT * FROM Customer;
परिणाम:
+--------------------------------------+----------------------+ | CustomerId | CustomerName | |--------------------------------------+----------------------| | 6f7f606f-9ed3-48f3-b70e-90d901591203 | Peter Griffin | | 79b470df-a317-4359-92af-35cd6394eb5d | Marge Simpson | | ed59b667-4cd4-4849-b697-ec2410d7b7ff | Borat Schwarzenegger | +--------------------------------------+----------------------+
इस उदाहरण में, मैं एक तालिका बनाता हूं जिसमें एक अद्वितीय पहचानकर्ता . शामिल है कॉलम इसके डिफ़ॉल्ट मान के साथ NEWID()
. द्वारा उत्पन्न होता है . मैं फिर उस तालिका में डेटा सम्मिलित करता हूं। जब मैं ऐसा करता हूं, तो मैं CustomerId
निर्दिष्ट नहीं करता मान, इसलिए यह डिफ़ॉल्ट मान का उपयोग करता है (जो NEWID()
. द्वारा उत्पन्न होता है ) अंत में, मैं तालिका की सामग्री का चयन करता हूं, जो दिखाता है कि प्रत्येक पंक्ति डालने के साथ उत्पन्न GUID का उपयोग करें।
उदाहरण 5 - INSERT कथन में स्पष्ट रूप से निर्दिष्ट
आप स्पष्ट रूप से NEWID()
. का भी उपयोग कर सकते हैं डेटा डालते समय।
इस तरह:
INSERT Customer (CustomerId, CustomerName) VALUES (NEWID(), 'Bart Farnsworth'), (NEWID(), 'Bruce Norris'); SELECT * FROM Customer;
परिणाम:
+--------------------------------------+----------------------+ | CustomerId | CustomerName | |--------------------------------------+----------------------| | 6f7f606f-9ed3-48f3-b70e-90d901591203 | Peter Griffin | | 79b470df-a317-4359-92af-35cd6394eb5d | Marge Simpson | | ed59b667-4cd4-4849-b697-ec2410d7b7ff | Borat Schwarzenegger | | a21e9a65-5efd-43ea-bd8b-8040b379617a | Bart Farnsworth | | 5ae0e501-3944-4be0-bf8a-ba964d8d13ed | Bruce Norris | +--------------------------------------+----------------------+
यहां मैं NEWID()
का उपयोग करता हूं प्रत्येक पंक्ति के लिए एक अद्वितीय आईडी उत्पन्न करने के लिए, और इसलिए डिफ़ॉल्ट मान का उपयोग नहीं किया जाता है। किसी भी तरह से, दोनों NEWID()
by द्वारा जेनरेट किए गए हैं इसलिए हम प्रभावी रूप से वही परिणाम प्राप्त करते हैं - एक यादृच्छिक रूप से उत्पन्न GUID।