Die Varchar (max) -Spalte darf kein Primärschlüssel in SQL Server sein

8

Varchar (max) -Spalte darf kein Primärschlüssel in SQL Server sein.

Was ist die maximale Länge eines Varchar-Typs, der als Primärschlüssel verwendet werden kann?

Dies könnte eine schlechte Praxis sein, aber kam über die Situation.

    
singsuyash 11.05.2012, 17:01
quelle

3 Antworten

16

900 Bytes ist die maximale Länge für einen Primärschlüssel, das ist meiner Meinung nach eine schlechte Idee, warum verwenden Sie nicht stattdessen einen Ersatzschlüssel?

    
SQLMenace 11.05.2012, 17:04
quelle
4

Diese Frage wurde bereits in diesem Thread beantwortet ; Die kurze Antwort lautet, dass ein Indexfeld nicht größer als 900 Byte sein darf. Allerdings ist es generell eine schlechte Idee, ein langes VARCHAR-Feld als Index für eine Vielzahl von Gründen wie Effizienz und Wartbarkeit zu verwenden.

    
Jgreenst 11.05.2012 17:12
quelle
3

Der Primärschlüssel wird in allen anderen Indizes verwendet, um Zeilen zu identifizieren. Es ist sehr wenig sinnvoll, einen potentiell mehrere Megabyte großen Wert als Schlüssel zu verwenden. Daher ist das Limit für die Gesamtanzahl der Bytes in einem beliebigen Schlüssel begrenzt.

    
Cade Roux 11.05.2012 17:33
quelle

Tags und Links