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

Nejlepší způsob, jak získat PK Guid vloženého řádku

Pomocí funkce OUTPUT můžete vrátit výchozí hodnoty zpět do parametru.

CREATE TABLE MyTable
(
    MyPK UNIQUEIDENTIFIER DEFAULT NEWID(),
    MyColumn1 NVARCHAR(100),
    MyColumn2 NVARCHAR(100)
)

DECLARE @myNewPKTable TABLE (myNewPK UNIQUEIDENTIFIER)

INSERT INTO 
    MyTable
(
    MyColumn1,
    MyColumn2
)
OUTPUT INSERTED.MyPK INTO @myNewPKTable
VALUES
(
    'MyValue1',
    'MyValue2'
)

SELECT * FROM @myNewPKTable

Musím však říci, že buďte opatrní při používání jedinečného identifikátoru jako primárního klíče. Indexování na GUID je extrémně špatný výkon, protože nově vygenerované GUID bude nutné vložit doprostřed indexu a jen zřídka je přidat na konec. V SQL2005 je nová funkce pro NewSequentialId(). Pokud u vašich průvodců není vyžadována temnota, pak je to možná alternativa.



  1. Docker – Jak lze spustit příkaz psql v kontejneru postgres?

  2. Jak zjistit, kdy byla v Oracle vytvořena konkrétní tabulka?

  3. Jak převést řádky na sloupce v Oracle?

  4. Nástroj SQL Server bcp a číselný datový typ