sql >> Databáze >  >> RDS >> Sqlserver

Jak přidám primární klíč s automatickým přírůstkem na server SQL s nvarchar?

Nemůžete to udělat přímo – to, co můžete udělejte toto:

  • vytvořte sloupec s automatickým přírůstkem pro zpracování číselné části
  • přidejte vypočítaný sloupec který spojuje předponu řetězce a číslo

Zkuste tedy něco takového:

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
    )

Nyní, když vložíte řádky takto:

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

měli byste dostat řádky jako tento:

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

A na tomto IDandPrefix můžete definovat svůj primární klíč sloupec také:

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


  1. Zvyšte hodnotu ID tabulky pro každý INSERT

  2. Dynamické názvy sloupců v zobrazení (Postgres)

  3. Chcete-li extrahovat konkrétní řetězce z daného řetězce v Oracle

  4. Počítat instance v tabulce1 A odkaz na tabulku2