मेरा मानना है कि इस प्रश्न का उत्तर "नहीं" है, लेकिन मुझे समुदाय की राय में रूचि है। एक वर्चर या nvarchar मूल्य स्वचालित रूप से पिछली सफेद जगह को ट्रिम करना चाहिए, इसलिए मुझे विश्वास नहीं है कि मुझे कभी भी इस तरह के मूल्य पर RTRIM() को कॉल करना होगा। क्या किसी विशेषज्ञ के पास ऐसा कोई कारण है जिसके लिए मुझे आवश्यकता होगी?क्या मुझे कभी भी वर्चर या nvarchar मूल्य पर RTRIM() को कॉल करने की आवश्यकता है?
उत्तर
तो ANSI_PADDING पर तो पीछे चल रही है रिक्त स्थान भी varchar/nvarchar डेटा प्रकार के साथ संग्रहीत किया जाएगा, ताकि हाँ:
भागो इस परीक्षण मैं क्या मतलब है देखने के लिए।
आप एक सरल चयन में मानों बाहर निकलने के लिए rtrim करने की जरूरत नहीं हो सकती है (मामले में टैग यह स्पष्ट है, मैं Microsoft SQL सर्वर के लिए विशेष रूप से चर्चा करते हुए कर रहा हूँ नहीं कर सकता हूँ।), लेकिन अगर आप चाहते हैं मानों को समेकित करने के लिए (जैसे पूर्ण नाम दिखाने के लिए पहले और अंतिम नामों को संयोजित करना) आपको आवश्यकता हो सकती है।
create table #temp (test varchar (10))
insert #temp
values ('test ')
insert #temp
values ('test2 ')
insert #temp
values ('test ')
insert #temp
values ('test')
select test + '1' from #temp
select rtrim(test) +'1' from #temp
select * from #temp where test = 'test'
हां, ह्यूग डार्वेन ने "द क्यूवे वाल" नामक अपने महान व्याख्यान में इस बारे में बात की और इसे एसक्यूएल डीबीएमएसएस – McKay
(n)varchar
केवल उपयोग की गई जगह की मात्रा का उपयोग करता है, इसलिए इसमें सफेद स्थान शामिल नहीं होना चाहिए। यह आमतौर पर आवंटित होने पर char
फ़ील्ड से अतिरिक्त स्थान को हटाते समय उपयोग किया जाता है, यानी char(30)
केवल 10 वर्णों के साथ।
एयू कॉन्ट्रैयर का बड़ा असफल माना जाता है। सेट ANSI_PADDING ... – gbn
@ जीबीएन, आपने इसे फिर से किया! :) मैं तुमसे बहुत कुछ सीखता हूँ !! यह नल था | नल टुकड़ा जो मैं लापता था। –
एमएसडीएन से नोट करने के लिए (http://msdn.microsoft.com/en-us/library/ms187403।एएसपीएक्स): माइक्रोसॉफ्ट एसक्यूएल सर्वर के भविष्य के संस्करण में ANSI_PADDING हमेशा चालू रहेगा और किसी भी एप्लिकेशन जो स्पष्ट रूप से बंद करने के विकल्प को सेट करता है, एक त्रुटि उत्पन्न करेगा। इस सुविधा का उपयोग नए विकास कार्यों में करने से बचें, और वर्तमान में इस सुविधा का उपयोग करने वाले अनुप्रयोगों को संशोधित करने की योजना बनाएं। –
LIKE
ऑपरेटर के साथ एक अजीब मामला है। उदाहरण के लिए:
select 1 where convert(nvarchar(10), 'a') like convert(nvarchar(10), '%a ')
परिणाम नहीं देगा।
सिद्धांत रूप में, हाँ, SET ANSI_PADDING
की वजह से जो डिफ़ॉल्ट रूप से चालू है और हमेशा भविष्य में चालू रहेगा।
ईमानदार होने के लिए, मैं पढ़ने के लिए आरटीआरआईएम को लिखता हूं क्योंकि अधिक होता है। यह केवल आपके दिन को खराब करने के लिए होता है ...
यह निर्भर करता है, उदाहरण के लिए डेल्फी क्लाइंट डेटासेट और midas.dll इसके साथ उपयोग किया जाता है (कम से कम संस्करण 7 और पहले (अब पता नहीं) बग कि अगर Nvarchar फ़ील्ड में डेटा की लंबाई निर्दिष्ट एक से कम थी, तो उन्हें गद्दे मिलती थी।
डेटाबेस पक्ष में इतनी समस्या नहीं थी, लेकिन ग्राहकों में यह हमें थोड़ा कम नहीं करता था । मुसीबत की राशि
एसक्यूएल सर्वर (और अधिकांश अन्य एसक्यूएल DBMSs) वास्तव में चूसना जब यह इस तरह सामान के लिए आता है:
insert into Blah values ('careful ');
insert into Blah values ('careful');
मान लें कि कोई आईडी कॉलम है या कुछ
मान समान होने की तुलना करेंगे, वही लंबाई होगी, लेकिन वास्तव में एक ही डेटा नहीं होगा। एक संगतता
select Bar + 'something' from Blah
और एक में एक स्थान होगा, दूसरा नहीं होगा।
डेटेलेंथ अंतर दिखाएगा, एलआईएन ट्रिम – gbn
@ जीबीएन हाँ, डेटा वास्तव में अलग है, यह मेरा मुद्दा है। कॉन्सटेनेशन उदाहरण की तरह, मतभेदों को प्राप्त करने के तरीके हैं, लेकिन वे समान होने की तुलना करते हैं। एसक्यूएल की विफलता यह है कि यह गणितीय आधार में विफल रहता है: सभी ए = बी, एफ (ए) = एफ (बी) – McKay
- 1. क्या मुझे कभी भी प्रतिबद्ध नहीं होने पर रोलबैक कॉल करने की आवश्यकता है?
- 2. क्या मुझे ग्राफिक्स को कॉल करने की आवश्यकता है। प्रदर्शन()?
- 3. क्या मुझे कभी भी गोरम में कॉल को बचाने के लिए स्पष्ट रूप से फ्लश करने की आवश्यकता है?
- 4. लाटेक्स पर राय की आवश्यकता है और कभी भी
- 5. क्या मुझे संदेश बॉक्स कॉल करने की आवश्यकता है?
- 6. मुझे मार्शल को कॉल करने की आवश्यकता है। सी #
- 7. क्या मुझे मैन्युअल रीसेट इवेंट पर बंद() को कॉल करने की आवश्यकता है?
- 8. क्या मुझे मान्य इनपुट पर भी एसक्यूएल इंजेक्शन की जांच करने की आवश्यकता है?
- 9. क्या मुझे प्रबंधित वस्तुओं पर निपटान() को कॉल करने की आवश्यकता है?
- 10. क्या मुझे वास्तव में प्रत्येक प्रिंसिपल पर निपटान() को कॉल करने की आवश्यकता है?
- 11. क्या मुझे std :: fstream को बंद करने की आवश्यकता है?
- 12. क्या मुझे रीर्यूम पर सभी चर को पुनर्स्थापित करने की आवश्यकता है?
- 13. क्या मुझे servlet outputstream को फ्लश करने की आवश्यकता है?
- 14. क्या मुझे इसका उपयोग करने के बाद HttpURLConnection.disconnect को कॉल करने की आवश्यकता है
- 15. पर्यवेक्षकों को सूचित करने से पहले मुझे सेट चेंज को कॉल करने की आवश्यकता क्यों है?
- 16. मुझे कॉल करने की आवश्यकता कब है - [UIViewController initWithNibName: बंडल:]?
- 17. क्या मुझे इसका उपयोग करने से पहले MessageDigest.reset() को कॉल करने की आवश्यकता है?
- 18. क्या मुझे हर बच्चे के नियंत्रण के लिए SuspendLayout को कॉल करने की आवश्यकता है?
- 19. क्या मुझे @ सिंथेसाइज को शामिल करने की आवश्यकता है?
- 20. क्या मुझे xib संसाधनों को रिलीज़ करने की आवश्यकता है?
- 21. वर्चर को लंबाई विनिर्देश की आवश्यकता क्यों है?
- 22. क्या मुझे -D_REENTRANT -pthreads की आवश्यकता है?
- 23. क्या मुझे टाइमआउट के बाद एंडइवोक को कॉल करने की आवश्यकता है?
- 24. GLSurfaceView: क्या मुझे ऑन/ऑन रीज़्यूम पर कॉल करने की आवश्यकता है?
- 25. क्या मुझे इशारा पहचानकर्ता जारी करने की आवश्यकता है?
- 26. jQuery - क्या मुझे एक वैरिएबल एन्कोड करने की आवश्यकता है?
- 27. क्या मुझे आधार वर्चुअल विनाशक को स्पष्ट रूप से कॉल करने की आवश्यकता है?
- 28. क्या मुझे एंड्रॉइड सेवाओं के लिए unbindService और stopService दोनों को कॉल करने की आवश्यकता है?
- 29. nvarchar (अधिकतम) को nvarchar (अधिकतम)
- 30. क्या मुझे अभी भी एक सीएसएस स्प्राइट में छवियों को पैड करने की आवश्यकता है?
मुझे कभी नहीं करना पड़ा। –