Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara terbaik untuk mendapatkan PK Guid dari baris yang disisipkan

Anda dapat menggunakan fungsionalitas OUTPUT untuk mengembalikan nilai default kembali ke parameter.

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

Saya harus mengatakan, berhati-hatilah menggunakan pengidentifikasi unik sebagai kunci utama. Pengindeksan pada GUID adalah kinerja yang sangat buruk karena setiap panduan yang baru dibuat harus dimasukkan ke tengah indeks dan jarang ditambahkan di akhir. Ada fungsionalitas baru di SQL2005 untuk NewSequentialId(). Jika ketidakjelasan tidak diperlukan dengan Panduan Anda, maka ini adalah alternatif yang memungkinkan.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana KECUALI Bekerja di SQL Server

  2. Ubah nilai kolom yang dipisahkan koma menjadi baris

  3. Mengapa SQL Server kehilangan satu milidetik?

  4. SqlConnection.Close() di dalam menggunakan pernyataan

  5. Tentang Perintah GO di SQL Server