एक चयन कथन में छवि डेटा प्रकार जिसमें DISTINCT खंड होता है। उपयोग किए जा रहे SQL सर्वर के संस्करण के आधार पर, इस प्रतिबंध पर काबू पाने के कुछ तरीके हैं।
SQL सर्वर 2000 के लिए, एक टेक्स्ट कॉलम को VARCHAR डेटा प्रकार में परिवर्तित किया जा सकता है, एक NTEXT कॉलम को एक NVARCHAR डेटा प्रकार में परिवर्तित किया जा सकता है जबकि एक IMAGE डेटा प्रकार को VARBINARY डेटा प्रकार में परिवर्तित किया जा सकता है। DISTINCT क्लॉज वाले पहले सेलेक्ट स्टेटमेंट को निम्नानुसार फिर से लिखा जा सकता है और त्रुटि संदेश से बचा जा सकता है:
DISTINCT [BookTitle], CAST([BookSummary] AS NVARCHAR(4000)) AS [BookSummary]FROM [dbo] से चुनें।[बुक]
NVARCHAR को 4000 वर्णों तक सीमित करने के बजाय, DISTINCT [BookTitle], CAST ([BookImage] AS VARBINARY (8000)) के रूप में [BookImage] [dbo] से चुनें। [Book] SQL Server 2005 और SQL Server 2008 (और बाद में) के लिए। या VARCHAR या VARBINARY से 8000 वर्णों तक, MAX विनिर्देशक का उपयोग इसके स्थान पर किया जा सकता है, जैसा कि निम्नलिखित चयन कथनों में देखा जा सकता है:
DISTINCT [BookTitle], CAST([BookSummary] AS NVARCHAR(MAX)) AS [BookSummary]FROM [dbo] से चुनें।[बुक]
DISTINCT [BookTitle], CAST([BookImage] AS VARBINARY(MAX)) AS [BookImage]FROM [dbo] से चुनें। टेक्स्ट, ntext और छवि डेटा प्रकारों को क्रमशः varchar, nvarchar और varbinary में बदलने के लिए CAST या CONVERT फ़ंक्शन का उपयोग किए बिना यह त्रुटि संदेश, कॉलम के डेटा प्रकारों को VARCHAR (MAX), NVARCHAR (MAX) और VARBINARY में बदलना है। (मैक्स)। Microsoft SQL सर्वर के भविष्य के संस्करण में TEXT, NTEXT और IMAGE डेटा प्रकार हटा दिए जाएंगे और इन डेटा प्रकारों के उपयोग से बचना चाहिए।
संदर्भ:http://www.sql-server-helper .com/error-messages/msg-421.aspx