आपने इसे nvarchar(max) घोषित किया है जो 2GB डेटा की अनुमति देता है इसलिए यह 2GB स्टोर करेगा।
क्या हो रहा है:
- डेटाटाइप अभी असाइनमेंट . तक nvarchar(max) नहीं है करने के लिए @ sql1
- इससे पहले, यह स्ट्रिंग्स का एक संग्रह है, प्रत्येक 4000 से कम (स्थिरांक)
- आप लघु स्थिरांक को लघु चरों (लघु =<4000) के साथ जोड़ रहे हैं
- तो आपके पास @sql1 में 4000 वर्ण हैं
तो, आपने सुनिश्चित कर लिया है कि आपके पास दाहिनी ओर nvarchar(max) है।
एक विचार। दूसरी पंक्ति nvarchar(max) को एक स्थिरांक =nvarchar(max)
से जोड़ती हैSET @SQL1 = ''
SET @SQL1 = @SQL1 + 'SELECT DISTINCT Venue...
....
यह हर भाषा में होने वाले पूर्णांक विभाजन से अलग नहीं है।
declare @myvar float
set @myvar = 1/2 --gives zero because it's integer on the right
ऑपरेटर प्राथमिकता (डेटाटाइप वरीयता का अनुमान लगाता है) हमेशा "असाइनमेंट" अंतिम होता है ... SQL सर्वर में यूनिकोड स्ट्रिंग्स अलग क्यों होनी चाहिए?