Tipe data gambar dalam pernyataan SELECT yang berisi klausa DISTINCT. Tergantung pada versi SQL Server yang digunakan, ada beberapa cara untuk mengatasi pembatasan ini.
Untuk SQL Server 2000, kolom TEXT dapat dikonversi ke tipe data VARCHAR, kolom NTEXT dapat dikonversi ke tipe data NVARCHAR sementara tipe data GAMBAR dapat dikonversi ke tipe data VARBINARY. Pernyataan SELECT sebelumnya yang berisi klausa DISTINCT dapat ditulis ulang sebagai berikut dan menghindari pesan kesalahan:
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]Untuk SQL Server 2005 dan SQL Server 2008 (dan yang lebih baru), alih-alih membatasi NVARCHAR hingga 4000 karakter atau VARCHAR atau VARBINARY hingga 8000 karakter, specifier MAX dapat digunakan sebagai gantinya, seperti yang dapat dilihat pada pernyataan SELECT berikut:
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]Jika menggunakan SQL Server 2005 atau SQL Server 2008 (atau lebih baru), cara lain untuk mengatasi pembatasan ini dan pesan kesalahan ini tanpa menggunakan fungsi CAST atau CONVERT untuk mengubah tipe data teks, ntext dan gambar menjadi varchar, nvarchar dan varbinary, masing-masing, adalah mengubah tipe data kolom menjadi VARCHAR(MAX), NVARCHAR(MAX) dan VARBINARY (MAX). Tipe data TEXT, NTEXT, dan IMAGE akan dihapus di Microsoft SQL Server versi mendatang dan penggunaan tipe data ini harus dihindari.
Referensi:http://www.sql-server-helper .com/error-messages/msg-421.aspx