Типове данни за изображения в оператор SELECT, който съдържа клаузата DISTINCT. В зависимост от използваната версия на SQL Server има няколко начина за преодоляване на това ограничение.
За SQL Server 2000 колона TEXT може да бъде преобразувана в тип данни VARCHAR, колона NTEXT може да бъде преобразувана в тип данни NVARCHAR, докато тип данни IMAGE може да бъде преобразуван в тип данни VARBINARY. Операторите SELECT по-рано, които съдържат клаузата DISTINCT, могат да бъдат пренаписани по следния начин и да се избегне съобщението за грешка:
SELECT DISTINCT [BookTitle], CAST([BookSummary] AS NVARCHAR(4000)) AS [BookSummary]FROM [dbo].[Book]
SELECT DISTINCT [BookTitle], CAST([BookImage] AS VARBINARY(8000)) AS [BookImage]FROM [dbo].[Book]За SQL Server 2005 и SQL Server 2008 (и по-нови), вместо да ограничавате NVARCHAR до 4000 знака или VARCHAR или VARBINARY до 8000 знака, спецификаторът MAX може да се използва вместо него, както може да се види в следните оператори SELECT:
SELECT DISTINCT [BookTitle], CAST([BookSummary] AS NVARCHAR(MAX)) AS [BookSummary]FROM [dbo].[Book]
SELECT DISTINCT [BookTitle], CAST([BookImage] AS VARBINARY(MAX)) AS [BookImage]FROM [dbo].[Book]Ако използвате SQL Server 2005 или SQL Server 2008 (или по-нова), друг начин за преодоляване на това ограничение и това съобщение за грешка, без да използвате функцията CAST или CONVERT за преобразуване на типовете данни текст, ntext и изображение съответно във varchar, nvarchar и varbinary, е да промените типовете данни на колоните на VARCHAR(MAX), NVARCHAR(MAX) и VARBINARY (МАКС.). Типовете данни TEXT, NTEXT и IMAGE ще бъдат премахнати в бъдеща версия на Microsoft SQL Server и използването на тези типове данни трябва да се избягва.
Справка:http://www.sql-server-helper .com/error-messages/msg-421.aspx