Du meinst den PrimaryKey, richtig?
Der darf (nagel mich nicht drauf fest) glaube ich alles sein.
Ich bin aber sowieso der Meinung, dass ein PrimaryKey möglichst keine tatsächlichen Daten beinhalten soll. Schließlich weißt Du nie, ob in deiner Anwendung doch irgendwann mal Dublikate von dem Code vorkommen würfen. Der PrimaryKey ist kein Aufwand, der Speicherverbrauch ist relativ gering (bei INT zumindest, UNIQUEIDENTIFIER bei MSSQL ist da etwas größer).
Wenn dein Code ebenfalls eindeutig sein soll, dann setze ein UNIQUE dazu, den PrimaryKey ersetzt das aber nicht.
Sprich:
Lege einen PrimaryKey vom Typ Int und mit AUTOINCREMENT an.
Lege eine weitere Spalte vom Typ NVARCHAR(20) mit UNIQUE an.
Das UNIQUE kannst Du im Nachhinein einfach entfernen, wenn es nötig ist, wäre der Code der PrimaryKey ginge das nicht so einfach.