sql >> Databáze >  >> RDS >> Sqlserver

Zřetelná chyba v poli obrázku

Typy dat obrázku v příkazu SELECT, který obsahuje klauzuli DISTINCT. V závislosti na používané verzi SQL Serveru existuje několik způsobů, jak toto omezení překonat.

Pro SQL Server 2000 lze sloupec TEXT převést na datový typ VARCHAR, sloupec NTEXT lze převést na datový typ NVARCHAR, zatímco datový typ IMAGE lze převést na datový typ VARBINARY. Dřívější příkazy SELECT, které obsahují klauzuli DISTINCT, lze přepsat následovně a vyhnout se chybové zprávě:

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].[Kniha]Pro SQL Server 2005 a SQL Server 2008 (a novější), namísto omezení NVARCHAR na 4000 znaků nebo VARCHAR nebo VARBINARY na 8000 znaků, místo něj lze použít specifikátor MAX, jak je vidět v následujících příkazech 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].[Kniha]Pokud používáte SQL Server 2005 nebo SQL Server 2008 (nebo novější), jiný způsob, jak toto omezení překonat a tato chybová zpráva bez použití funkce CAST nebo CONVERT k převodu datových typů text, ntext a image na varchar, nvarchar a varbinary, v tomto pořadí, znamená změnu datových typů sloupců na VARCHAR(MAX), NVARCHAR(MAX) a VARBINARY (MAX). Datové typy TEXT, NTEXT a IMAGE budou v budoucí verzi Microsoft SQL Server odstraněny a použití těchto datových typů by se mělo zabránit.

Odkaz:http://www.sql-server-helper .com/error-messages/msg-421.aspx




  1. Co jsou závislosti na databázi?

  2. Rails ActiveRecord – existuje způsob, jak provádět operace na tabulkách bez id?

  3. Ruby:mysql2-Gem nefunguje (Mac OS X Snow Leopard, Ruby 1.9.2)

  4. Jak třídit čas (v AM / PM) v SQL?