sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo agrego una clave principal de incremento automático en el servidor sql con nvarchar?

No puedes hacer esto directamente - lo que puedes hacer es esto:

  • cree una columna de incremento automático para manejar la parte numérica
  • añadir una columna calculada que concatena el prefijo de cadena y el número

Así que prueba algo como esto:

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
    )

Ahora, cuando inserta filas como esta:

INSERT INTO dbo.YourTable(StringPrefix) VALUES('A'), ('B'), ('A')

deberías obtener filas como esta:

ID   StringPrefix   IDandPrefix
 1        A             A1
 2        B             B2
 3        A             A3

Y puede definir su clave principal en ese IDandPrefix columna, también:

ALTER TABLE dbo.YourTable 
ADD CONSTRAINT PK_YourTable PRIMARY KEY CLUSTERED (IDandPrefix)