Domanda

In che modo le regole di confronto influiscono su SQL Server in termini di archiviazione e in che modo influiscono sui tipi di dati Unicode e non Unicode?

  • Le regole di confronto influiscono sull'archiviazione Unicode? o semplicemente governare le regole di ordinamento all'interno del database?

  • Quando utilizzo i tipi di dati non Unicode quali restrizioni sono legate alla raccolta?

  • Se si applicano restrizioni, cosa succede quando provo a memorizzare un personaggio non presente nelle regole di confronto del database di un tipo di dati non unicode?

La mia comprensione è che il tipo di dati Unicode può sempre archiviare l'intero set di dati Unicode mentre le capacità di archiviazione dei tipi di dati non unicode dipendono dalla tabella codici (che è definita dalle regole di confronto) e possono rappresentare solo un numero di comuni personaggi in quella raccolta.

Ovviamente ogni carattere in un tipo di dati Unicode occuperebbe almeno 2 byte mentre i tipi di dati non unicode occupano 1 byte per carattere (o varia anche con le regole di confronto?)

Mettimi qui, come funziona esattamente?

È stato utile?

Soluzione

SQL Server archivia i dati Unicode (NTEXT, NVARCHAR) in UCS2, risultando sempre in 2 byte per carattere.

Un confronto ha effetto solo sull'ordinamento (e sull'involucro).

Nei tipi di dati non Unicode (TEXT, VARCHAR), viene utilizzato solo un singolo byte per carattere e solo i caratteri della tabella codici delle regole di confronto possono essere memorizzati (proprio come indicato). Vedi questo articolo MSDN sulle regole di confronto

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top