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

Berbagai cara untuk menghasilkan kunci asing utama tipe int terbaru dalam kode

satu-satunya cara yang layak untuk melakukan ini adalah dengan menggunakan INT IDENTITY yang ditawarkan oleh database SQL Server. Percayalah pada saya yang satu ini - Anda tidak ingin mencoba melakukannya sendiri!

Cukup gunakan

CREATE TABLE dbo.YourTableOne(ID INT IDENTITY(1,1),  ...other columns...)

dan selesaikan.

Setelah Anda memasukkan baris ke tabel pertama Anda, Anda dapat mengambil nilai kolom identitas seperti ini:

-- do the insert into the first table
INSERT INTO dbo.YourTableOne(Col1, Col2, ...., ColN)
VALUES (Val1, Val2, ...., ValN)

DECLARE @NewID INT

-- get the newly inserted ID for future use
SELECT @NewID = SCOPE_IDENTITY()

-- insert into the second table, use first table's new ID for your FK column
INSERT INTO dbo.YourTableTwo (FKColumn, ......) VALUES(@NewID, ......)

Pembaruan: jika Anda perlu memasukkan beberapa baris ke dalam tabel pertama dan menangkap beberapa ID nilai, gunakan OUTPUT klausa:

-- declare a table variable to hold the data
DECLARE @InsertedData TABLE (NewID INT, ...some other columns as needed......)

-- do the insert into the first table
INSERT INTO dbo.YourTableOne(Col1, Col2, ...., ColN)
OUTPUT Inserted.ID, Inserted.Col1, ..., Inserted.ColN INTO @InsertedData(NewID, Col1, ..., ColN)
VALUES (Val1, Val2, ...., ValN)

dan kemudian pergi dari sana. Anda bisa mendapatkan nilai apa pun dari baris yang baru dimasukkan ke dalam variabel tabel sementara, yang kemudian memungkinkan Anda memutuskan nilai ID baru mana yang akan digunakan untuk baris mana untuk tabel kedua Anda



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. gunakan nilai yang dipilih sql sebagai nama baris untuk pilihan lain

  2. Menyegarkan metadata pada fungsi pengguna t-SQL

  3. Cara mendapatkan nomor minggu bulan dari tanggal di sql server 2008

  4. Keluar dari string di SQL Server sehingga aman digunakan dalam ekspresi LIKE

  5. Bagaimana Memetakan Kolom Input dan Output secara dinamis di SSIS?