Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyraźny błąd w polu obrazu

Typy danych obrazu w instrukcji SELECT zawierającej klauzulę DISTINCT. W zależności od używanej wersji SQL Server, istnieje kilka sposobów na pokonanie tego ograniczenia.

W przypadku SQL Server 2000 kolumnę TEXT można przekonwertować na typ danych VARCHAR, kolumnę NTEXT można przekonwertować na typ danych NVARCHAR, a typ danych IMAGE można przekonwertować na typ danych VARBINARY. Wcześniejsze instrukcje SELECT zawierające klauzulę DISTINCT można przepisać w następujący sposób i uniknąć komunikatu o błędzie:

SELECT DISTINCT [TytułKsiążki], CAST([PodsumowanieKsiążki] AS NVARCHAR(4000)) AS [PodsumowanieKsiążki]FROM [dbo].[Książka]

SELECT DISTINCT [BookTitle], CAST([BookImage] AS VARBINARY(8000)) AS [BookImage]FROM [dbo].[Book]Dla SQL Server 2005 i SQL Server 2008 (i nowszych), zamiast ograniczać NVARCHAR do 4000 znaków lub VARCHAR lub VARBINARY do 8000 znaków, w jego miejsce można użyć specyfikatora MAX, jak widać w następujących instrukcjach SELECT:

SELECT DISTINCT [TytułKsiążki], CAST([PodsumowanieKsiążki] AS NVARCHAR(MAX)) AS [PodsumowanieKsiążki]FROM [dbo].[Książka]

SELECT DISTINCT [BookTitle], CAST([BookImage] AS VARBINARY(MAX)) AS [BookImage]FROM [dbo].[Book]W przypadku korzystania z SQL Server 2005 lub SQL Server 2008 (lub nowszego), inny sposób na obejście tego ograniczenia i ten komunikat o błędzie bez użycia funkcji CAST lub CONVERT do konwersji typów danych text, ntext i image odpowiednio na varchar, nvarchar i varbinary, polega na zmianie typów danych kolumn na VARCHAR(MAX), NVARCHAR(MAX) i VARBINARY (MAX). Typy danych TEXT, NTEXT i IMAGE zostaną usunięte w przyszłej wersji Microsoft SQL Server i należy unikać używania tych typów danych.

Odniesienie:http://www.sql-server-helper .com/komunikaty-o-błędach/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. Pobierz wszystkie daty między dwiema datami w SQL Server

  2. Wykonywanie zestawu zapytań SQL przy użyciu pliku wsadowego?

  3. dlaczego wstawianie wierszy powyżej 8053 bajtów nie daje błędu, kiedy powinno, ponieważ maksymalny dozwolony limit wierszy to 8060

  4. Jak skonfigurować pocztę bazy danych w SQL Server

  5. Wewnętrzne elementy SQL Server:operatorzy problematyczni Pt. III – Rodzaje