SQL सर्वर का उपयोग करते समय, आपके वर्तमान कनेक्शन में कई विकल्प शामिल होते हैं जो भाषा, दिनांक स्वरूप आदि जैसी चीज़ों को निर्धारित करते हैं। इन्हें डिफ़ॉल्ट पर सेट किया जा सकता है, लेकिन सत्र के दौरान SET
बयान।
दिनांक स्वरूप वर्ण स्ट्रिंग की व्याख्या को प्रभावित करता है क्योंकि वे डेटाबेस में संग्रहण के लिए दिनांक मानों में परिवर्तित हो जाते हैं। जब भाषा SET LANGUAGE
. का उपयोग करके सेट की जाती है , दिनांक स्वरूप सेटिंग परोक्ष रूप से तदनुसार सेट किया गया है। इसे SET DATEFORMAT
. के साथ स्पष्ट रूप से ओवरराइड किया जा सकता है बयान।
किसी भी स्थिति में, आप DBCC USEROPTIONS
का उपयोग करके वर्तमान दिनांक स्वरूप प्राप्त कर सकते हैं आज्ञा। यह कमांड SET
. लौटाता है विकल्प जो वर्तमान कनेक्शन के लिए सेट किए गए हैं।
सिंटैक्स
वाक्य रचना इस प्रकार है:
DBCC USEROPTIONS [ WITH NO_INFOMSGS ]
वैकल्पिक NO_INFOMSGS
तर्क 0 से 10 तक गंभीरता के स्तर वाले सभी सूचनात्मक संदेशों को दबा देता है।
उदाहरण
यहाँ कमांड चलाने का एक उदाहरण है, और परिणाम जो मुझे मेरी वर्तमान परीक्षण मशीन पर मिलते हैं:
DBCC USEROPTIONS;
परिणाम:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | us_english | | dateformat | mdy | | datefirst | 7 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
जैसा कि बताया गया है, आप इन विकल्पों को SET
. से बदल सकते हैं बयान।
यहां वर्तमान सत्र की भाषा बदलने, फिर कमांड चलाने का एक उदाहरण दिया गया है:
SET LANGUAGE German; DBCC USEROPTIONS;
परिणाम:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | Deutsch | | dateformat | dmy | | datefirst | 1 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+ Die Spracheneinstellung wurde in Deutsch geändert.
तो हम देख सकते हैं कि न केवल भाषा बदल गई, बल्कि तारीख प्रारूप भी बदल गया।
हालांकि, यदि यह वांछित दिनांक प्रारूप नहीं है, तो दिनांक प्रारूप को SET DATEFORMAT
का उपयोग करके स्पष्ट रूप से बदला जा सकता है ।
इस तरह:
SET DATEFORMAT mdy; DBCC USEROPTIONS;
परिणाम:
+-------------------------+----------------+ | Set Option | Value | |-------------------------+----------------| | textsize | -1 | | language | Deutsch | | dateformat | mdy | | datefirst | 1 | | lock_timeout | 5000 | | quoted_identifier | SET | | arithabort | SET | | ansi_null_dflt_on | SET | | ansi_warnings | SET | | ansi_padding | SET | | ansi_nulls | SET | | concat_null_yields_null | SET | | isolation level | read committed | +-------------------------+----------------+
और हम देख सकते हैं कि भाषा को जस का तस छोड़ते हुए दिनांक स्वरूप को निर्दिष्ट के अनुसार बदल दिया गया है।
sys.dm_exec_requests देखें
आप sys.dm_exec_requests
को क्वेरी करके वर्तमान अनुरोध में उपयोग किए जा रहे दिनांक प्रारूप को भी वापस कर सकते हैं सिस्टम दृश्य। यह दृश्य स्तंभों का एक अच्छा बड़ा समूह देता है, लेकिन आप इसे केवल उन स्तंभों तक सीमित कर सकते हैं जिनमें आप रुचि रखते हैं। हमारे मामले में, हम केवल एक कॉलम में रुचि रखते हैं - date_format
कॉलम:
SELECT r.date_format FROM master.sys.dm_exec_requests r WHERE r.session_id = @@SPID;
परिणाम:
+---------------+ | date_format | |---------------| | mdy | +---------------+
मैंने क्वेरी को केवल वर्तमान अनुरोध तक सीमित कर दिया। मैंने @@SPID
. का उपयोग करके ऐसा किया है , जो वर्तमान उपयोगकर्ता प्रक्रिया का सत्र आईडी लौटाता है।