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

Cara membuat Batasan Kunci Asing dengan ON DELETE CASCADE di SQL Server - Tutorial SQL Server / TSQL Bagian 80

Skenario:

Anda bekerja sebagai pengembang SQL Server, Anda perlu membuat dua tabel dengan Hubungan Kunci Utama - Asing. Anda ingin membuat Batasan Kunci Asing dengan pengaturan jika record akan dihapus dari Tabel Referensi (Tabel Kolom Kunci Utama), juga harus dihapus dari Tabel Induk (Tabel Batasan Kunci Asing).

Solusi:

SQL Server mari kita gunakan pengaturan dengan Batasan Kunci Asing yang disebut On DELETE CASCADE. Jika aturan ini diterapkan, setiap kali record dihapus dari Tabel Referensi (Tabel Kolom Kunci Utama), itu juga akan dihapus dari Tabel Induk ( Tabel Batasan Kunci Asing).
Mari kita uji skenario ini dengan skrip di bawah ini.
USE YourDatabaseName
GO

CREATE TABLE dbo.Customer (
    Customerid INT PRIMARY KEY
    ,FName VARCHAR(100)
    ,LName VARCHAR(100)
    ,SSN VARCHAR(10)
    )


    CREATE TABLE dbo.Orders (
    OrderId INT Identity(1, 1)
    ,OrderitemName VARCHAR(50)
    ,OrderItemAmt INT
    ,Customer_id INT FOREIGN KEY REFERENCES
     Customer(CustomerId) ON DELETE CASCADE
    )

    --insert sample data
     insert into dbo.Customer 
    (CustomerId,FName, LName,SSN)
     values
    (1,'Aamir','Shahzad','000-000-00')
 
 
 Periksa data dalam tabel dengan menggunakan kueri pemilihan.
Cara mengaktifkan ON Hapus aturan CASCADE dengan Batasan Kunci Asing di SQL Server

Mari kita hapus baris dari Tabel Referensi (Tabel Kolom Kunci Utama) dan lihat apakah baris tersebut juga dihapus dari Tabel Induk (Tabel Batasan Kunci Asing)

    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1


Periksa kembali tabel untuk melihat apakah record dihapus dari kedua tabel karena aturan ON Delete Cascade pada Batasan Kunci Asing.
Cara menggunakan ON Hapus Kaskade untuk menghapus catatan dari beberapa Tabel di Tabel SQL Server

Seperti yang dapat kita lihat bahwa catatan dihapus dari kedua tabel karena aturan ON DELETE CASCADE dari Batasan Kunci Asing.

Demo Video:Cara membuat Batasan Kunci Asing dengan ON DELETE CASCADE di SQL Server

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengeksekusi SQL Query tanpa Menampilkan hasil

  2. Bagaimana cara mengubah jumlah menit ke format jj:mm di TSQL?

  3. Pernyataan CASE dalam klausa WHERE di SQL Server 2008

  4. Ekspresi Reguler MSSQL

  5. Perbarui statistik SQL Server menggunakan rencana pemeliharaan basis data