Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

WHERE-Klausel für den SQL Server-Textdatentyp

Sie können LIKE verwenden statt = . Ohne Platzhalter hat dies denselben Effekt.

DECLARE @Village TABLE
        (CastleType TEXT)

INSERT INTO @Village
VALUES
  (
    'foo'
  )

SELECT *
FROM   @Village
WHERE  [CastleType] LIKE 'foo' 

text ist veraltet. Wechsel zu varchar(max) wird es einfacher sein, damit zu arbeiten.

Und wie groß werden die Daten wahrscheinlich sein? Wenn Sie Gleichheitsvergleiche durchführen, sollten Sie diese Spalte idealerweise indizieren. Dies ist nicht möglich, wenn Sie die Spalte als etwas breiter als 900 Byte deklarieren, obwohl Sie eine berechnete checksum hinzufügen können oder hash Spalte, die verwendet werden kann, um diese Art von Abfrage zu beschleunigen.