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

SQL सर्वर डेटाबेस (T-SQL उदाहरण) के लिए वर्तमान पंक्ति संस्करण मान कैसे लौटाएं

आप @@DBTS . का उपयोग कर सकते हैं वर्तमान पंक्ति संस्करण . प्राप्त करने के लिए कार्य करें SQL सर्वर में किसी दिए गए डेटाबेस का। अधिक विशेष रूप से, यह पिछली बार उपयोग किया गया . लौटाता है पंक्ति संस्करण वर्तमान डेटाबेस का मूल्य।

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

@@DBTS का उपयोग करने के लिए फ़ंक्शन, बस इसे SELECT . के भीतर चुनें बयान।

इस तरह:

SELECT @@DBTS;

परिणाम:

+--------------------+
| (No column name)   |
|--------------------|
| 0x0000000000000FA0 |
+--------------------+

उदाहरण 2 - विभिन्न डेटाबेस

जैसा कि बताया गया है, पंक्ति संस्करण मान प्रत्येक डेटाबेस के लिए विशिष्ट है। इसलिए, आपको यह सुनिश्चित करने की आवश्यकता है कि आप सही डेटाबेस में हैं।

प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:

USE Music;
SELECT @@DBTS AS "Music rowversion";

Use WideWorldImportersDW;
SELECT @@DBTS AS "WideWorldImportersDW rowversion";

परिणाम:

Changed database context to 'Music'.
+--------------------+
| Music rowversion   |
|--------------------|
| 0x00000000000007D0 |
+--------------------+
(1 row affected)
Changed database context to 'WideWorldImportersDW'.
+-----------------------------------+
| WideWorldImportersDW rowversion   |
|-----------------------------------|
| 0x0000000000015F90                |
+-----------------------------------+
(1 row affected)

इस मान का उपयोग कहां किया जाता है?

पंक्ति संस्करण मान का उपयोग उन स्तंभों द्वारा किया जाता है जिनमें या तो पंक्ति संस्करण . होता है या टाइमस्टैम्प डेटा प्रकार। पंक्ति संस्करण . के बढ़ते मान के आधार पर ऐसे कॉलम स्वचालित रूप से एक अद्वितीय संख्या के साथ अपडेट हो जाते हैं , जब भी कोई इंसर्ट या अपडेट होता है।

उपरोक्त उदाहरण का उपयोग करते हुए, यदि मैं Music . में एक पंक्ति सम्मिलित या अद्यतन करता/करती हूं डेटाबेस, और उस पंक्ति में एक पंक्ति संस्करण . है कॉलम, उस कॉलम का मान संभवतः 0x00000000000007D1 . पर सेट हो जाएगा (यानी 0x00000000000007D0 1) से बढ़ा दिया गया है। इस स्तर पर, अगर मुझे @@DBTS . का उपयोग करना होता उस डेटाबेस के विरुद्ध, यह 0x00000000000007D1 . लौटाएगा (क्योंकि यह पिछली बार उपयोग की गई पंक्ति गणना . है मूल्य)।

अगर मैं उस पंक्ति को अपडेट करता हूं, तो इसका पंक्ति संस्करण कॉलम बन जाएगा 0x00000000000007D2 . यह सच है, भले ही अपडेट ऑपरेशन ने वास्तव में कोई डेटा नहीं बदला हो। इस बार, अगर मैं @@DBTS चलाता हूं यह 0x00000000000007D2 लौटाएगा ।

इसे प्रदर्शित करने वाले उदाहरण के लिए, SQL सर्वर में "पंक्ति संस्करण" क्या है देखें।

टाइमस्टैम्प डेटा प्रकार वास्तव में पंक्ति संस्करण . का पर्याय है , इसलिए @@DBTS . द्वारा लौटाया गया मान वर्तमान पंक्ति संस्करण . को दर्शाता है मान लें कि क्या इसे पंक्ति संस्करण . द्वारा बढ़ाया गया था कॉलम या टाइमस्टैम्प कॉलम।

यह भी ध्यान रखें कि टाइमस्टैम्प चार बहिष्कृत डेटा प्रकारों में से एक है जो रखरखाव मोड में है और SQL सर्वर के भविष्य के संस्करण में हटाया जा सकता है। इसलिए आपको पंक्ति संस्करण . का उपयोग करना चाहिए टाइमस्टैम्प . के बजाय नए विकास कार्यों में। आपको उन अनुप्रयोगों को संशोधित करने की भी योजना बनानी चाहिए जो वर्तमान में टाइमस्टैम्प . का उपयोग करते हैं ।


  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. मैं संग्रहीत प्रक्रिया में पैरामीटर के रूप में सूची कैसे पास करूं?

  3. SQL Row_Number () फंक्शन जहां क्लॉज

  4. SQL सर्वर 2017 पुनर्स्थापित करें

  5. SQL सर्वर एजेंट (T-SQL) में अनुसूचियों की सूची प्राप्त करने के 4 तरीके