SQL सर्वर में, SET TEXTSIZE
स्टेटमेंट varchar(max) . के आकार को निर्दिष्ट करता है , nvarchar(अधिकतम) , varbinary(अधिकतम) , पाठ , ntext , और छवि SELECT
. द्वारा लौटाया गया डेटा बयान।
Microsoft सलाह देता है कि पाठ , ntext , और छवि SQL सर्वर के भविष्य के संस्करण में हटा दिया जाएगा, इसलिए आपको नए विकास कार्यों में इन डेटा प्रकारों का उपयोग करने से बचना चाहिए, और उन अनुप्रयोगों को संशोधित करने की योजना बनानी चाहिए जो वर्तमान में varchar(max) का उपयोग करने के लिए उनका उपयोग करते हैं। , nvarchar(अधिकतम) , या varbinary(max) इसके बजाय।
उदाहरण 1 - मूल उपयोग
यहां TEXTSIZE
. सेट करने का एक उदाहरण दिया गया है मूल्य।
SET TEXTSIZE 2048;
यह TEXTSIZE
. सेट करता है 2048 बाइट्स तक।
उदाहरण 2 - TEXTSIZE मान की जाँच करें
आप वर्तमान TEXTSIZE
. की जांच कर सकते हैं @@TEXTSIZE
. के साथ मान :
SELECT @@TEXTSIZE AS [Text Size];
परिणाम:
+-------------+ | Text Size | |-------------| | 2048 | +-------------+
उदाहरण 3 - यह क्वेरी परिणामों को कैसे प्रभावित करता है
यहां एक उदाहरण दिया गया है जो दर्शाता है कि कैसे TEXTSIZE
value SELECT
. में दिए गए परिणामों को प्रभावित कर सकता है क्वेरी।
आइए पहले एक टेबल बनाएं, कुछ टेक्स्ट डालें, फिर उसे चुनें।
USE Test; CREATE TABLE TextSizeTest ( varchar50 varchar(50), varcharMax varchar(max), nvarcharMax nvarchar(max) ); INSERT INTO TextSizeTest VALUES ( 'Dragonfruit', 'Dragonfruit', 'Dragonfruit' ); SELECT * FROM TextSizeTest;
परिणाम (सामान्य):
+-------------+--------------+---------------+ | varchar50 | varcharMax | nvarcharMax | |-------------+--------------+---------------| | Dragonfruit | Dragonfruit | Dragonfruit | +-------------+--------------+---------------+
हम सामान्य रूप से यही अपेक्षा करते हैं। यह प्रत्येक कॉलम के अंदर पूरा टेक्स्ट लौटाता है क्योंकि टेक्स्ट की प्रत्येक पंक्ति में 2048 बाइट्स से कम समय लगता है (जो कि मैंने TEXTSIZE
सेट किया है। पिछले उदाहरण में)।
लेकिन अगर मैं TEXTSIZE
. को कम कर दूं तो क्या होगा मूल्य:
SET TEXTSIZE 4; SELECT * FROM TextSizeTest;
परिणाम:
+-------------+--------------+---------------+ | varchar50 | varcharMax | nvarcharMax | |-------------+--------------+---------------| | Dragonfruit | Drag | Dr | +-------------+--------------+---------------+
पहला कॉलम अप्रभावित है, क्योंकि यह "अधिकतम" कॉलम नहीं है। मेरा मतलब है, यह एक varchar(50) . है और नहीं varchar(max) . TEXTSIZE
विकल्प केवल उन स्तंभों को प्रभावित करता है जो max
. से परिभाषित हैं ।
दूसरा कॉलम पहले चार अक्षर देता है। ऐसा इसलिए है क्योंकि हमने TEXTSIZE
. सेट किया है मान 4 है, और पहले चार वर्ण 4 बाइट्स का उपयोग कर रहे हैं।
तीसरा कॉलम केवल पहले 2 अक्षर लौटाता है। ऐसा इसलिए है क्योंकि यह एक nvarchar . है कॉलम। इस मामले में, पहले दो अक्षर 4 बाइट्स का उपयोग कर रहे हैं।
उदाहरण 4 - मान रीसेट करें
एक बात का ध्यान रखना चाहिए कि SET TEXTSIZE 0
. निर्दिष्ट करना वास्तव में इसे 4096 के डिफ़ॉल्ट मान पर "रीसेट" करता है।
SET TEXTSIZE 0; SELECT @@TEXTSIZE AS [@@TEXTSIZE]; SELECT * FROM TextSizeTest;
परिणाम:
+--------------+ | @@TEXTSIZE | |--------------| | 4096 | +--------------+ (1 row affected) +-------------+--------------+---------------+ | varchar50 | varcharMax | nvarcharMax | |-------------+--------------+---------------| | Dragonfruit | Dragonfruit | Dragonfruit | +-------------+--------------+---------------+ (1 row affected)