Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Najlepszy sposób na uzyskanie PK Guid wstawionego wiersza

Możesz użyć funkcji OUTPUT, aby przywrócić domyślne wartości z powrotem 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

Muszę jednak powiedzieć, że uważaj, używając unikalnego identyfikatora jako klucza podstawowego. Indeksowanie na identyfikatorze GUID jest wyjątkowo słabą wydajnością, ponieważ wszelkie nowo wygenerowane identyfikatory będą musiały zostać wstawione w środku indeksu, a rzadko po prostu dodane na końcu. W SQL2005 pojawiła się nowa funkcjonalność dla NewSequentialId(). Jeśli niejasność nie jest wymagana w przypadku twoich Guidów, jest to możliwa alternatywa.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wdrażanie wskaźnika wydajności programu SQL Server dla zapytań, procedur składowanych i wyzwalaczy

  2. Automatyczna korekta planu w SQL Server

  3. Jak usunąć duże dane tabeli w SQL bez logowania?

  4. Przedstawiamy nową funkcję:Zawsze włączona grupa dostępności

  5. Znajdź wartości nieliczbowe w kolumnie w SQL Server