Vous ne pouvez pas le faire directement - ce que vous pouvez faire est ceci :
- créer une colonne auto-incrémentée pour gérer la partie numérique
- ajouter une colonne calculée qui concatène le préfixe de chaîne et le nombre
Alors essayez quelque chose comme ça :
CREATE TABLE dbo.YourTable
(ID INT IDENTITY(1,1) NOT NULL,
StringPrefix NVARCHAR(10) NOT NULL,
IDandPrefix AS ISNULL(StringPrefix + CAST(ID AS NVARCHAR(10)), 'X') PERSISTED
)
Désormais, lorsque vous insérez des lignes comme celle-ci :
INSERT INTO dbo.YourTable(StringPrefix) VALUES('A'), ('B'), ('A')
vous devriez obtenir des lignes comme celle-ci :
ID StringPrefix IDandPrefix
1 A A1
2 B B2
3 A A3
Et vous pouvez définir votre clé primaire sur ce IDandPrefix
colonne aussi :
ALTER TABLE dbo.YourTable
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (IDandPrefix)