Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Явна грешка в полето за изображение

Типове данни за изображения в оператор 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




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. T-SQL:разделяне и агрегиране на стойности, разделени със запетая

  2. SQL Server:как да напиша израз за промяна на индекса, за да добавите колона към уникалния индекс?

  3. Fix Error Msg 4151 „Типът на първия аргумент за NULLIF не може да бъде константа NULL, защото типът на първия аргумент трябва да бъде известен“ в SQL Server

  4. Пропускане на оператор WHERE, ако променливата за този оператор е нула

  5. Импортиране на XML в SQL Server, но опит за създаване на множество записи, ако съществуват множество резултати за дъщерен елемент