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

Proč nemohu omezit nvarchar(max)?

nvarchar(max) je ve skutečnosti jiný datový typ než nvarchar(integer-length) . Jeho vlastnosti jsou spíše jako zastaralý text datový typ.

Pokud nvarchar(max) hodnota je příliš velká, například text , bude uložen venku řádek (řádek je omezen na maximálně 8000 bajtů) a ukazatel na něj je uložen v samotném řádku. Nemůžete efektivně indexovat tak velké pole a skutečnost, že data mohou být uložena někde jinde, dále komplikuje vyhledávání a skenování indexu.
Unikátní omezení vyžaduje vynucení indexu a v důsledku toho se návrháři SQL Serveru rozhodli zakázat vytvořením jedinečného omezení.



  1. Jak odstraníte znak ze sloupce na serveru SQL?

  2. Pomoc s dotazem MySql – Řádky obsahující maximum určitého sloupce z hlediska skupiny

  3. Jak omezit výsledky v Oracle

  4. Analyzujte řetězec JSON v SQL