गंभीरता से - VARCHAR(MAX)
2 जीबी तक डेटा स्टोर कर सकता है - सिर्फ 8000 कैरेक्टर नहीं.....
इसे आजमाएं:
DECLARE @myVar VARCHAR(MAX) = ''
DECLARE @ix INT = 1
WHILE @ix < 1000
BEGIN
set @myVar = @myVar + CAST('bla bla bla' AS VARCHAR(MAX))
SET @ix = @ix + 1
END
SELECT DATALENGTH(@myvar)
यह मान उच्च लौटाएगा 1000 पुनरावृत्तियों के बाद 8000 वर्णों से अधिक।
मुद्दा यह है:यदि आप varchar(max)
. का उपयोग कर रहे हैं , आपको यह सुनिश्चित करने की ज़रूरत है कि आप हमेशा कास्ट करें आपके सभी तार varchar(max)
. तक स्पष्ट रूप से - जैसा कि मैंने इस उदाहरण में किया था। अन्यथा, SQL सर्वर "नियमित" varchar
. पर वापस आ जाएगा प्रसंस्करण, और यह वास्तव में 8000 वर्णों तक सीमित है....