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

Cara Membuat Batasan Kunci Asing dengan Opsi ON DELETE SET NULL di SQL Server - Tutorial SQL Server / TSQL Bagian 81

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 catatan akan dihapus dari Tabel Referensi (Tabel Kolom Kunci Utama), tidak harus dihapus dari Tabel Induk (Tabel Batasan Kunci Asing) melainkan nilai harus diperbarui ke Null.

Solusi:

Kita dapat menggunakan ON DELETE SET NULL dengan definisi Batasan Kunci Asing untuk mengimplementasikan persyaratan di atas.
Mari kita lakukan dengan menggunakan script 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 SET NULL
    )

    --insert sample data
     insert into dbo.Customer 
    (CustomerId,FName, LName,SSN)
     values
    (1,'Aamir','Shahzad','000-000-00')

    insert into dbo.Orders
    (OrderItemName,OrderItemAmt,Customer_Id)
    values ('TV',1,1)
 
 
 Periksa data dalam tabel dengan menggunakan kueri Pilih 
Cara membuat Batasan Kunci Asing dengan ON DELETE SET NULL di SQL Server


Mari kita hapus baris dari Tabel Referensi (Tabel Kolom Kunci Utama) dan periksa apakah catatan masih ada di Tabel Induk (Tabel Batasan Kunci Asing) dan nilai kolom diperbarui ke Null.
    --Delete the Record from Referenced Table(PK Column Table)
    Delete from dbo.Customer
    where CustomerId=1

Cara menggunakan opsi ON DELETE SET NULL dengan Batasan Kunci Asing di SQL Server

Seperti yang kita lihat bahwa catatan dihapus dari Tabel Referensi (Tabel Kolom Kunci Utama) tetapi masih ada di Tabel Induk (Tabel Batasan Kunci Asing) tetapi nilainya diperbarui ke Null seperti yang diharapkan.

Demo Video :Cara Membuat Batasan Kunci Asing dengan Opsi ON DELETE SET NULL 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. MS SQL ON DELETE CASCADE beberapa kunci asing menunjuk ke tabel yang sama?

  2. Bagaimana cara memperluas nilai yang dipisahkan koma menjadi baris terpisah menggunakan SQL Server 2005?

  3. Parsing string yang dipisahkan koma untuk membuat IN Daftar string dalam klausa Where

  4. Apa alat terbaik untuk membandingkan dua database SQL Server (skema dan data)?

  5. LANTAI () Contoh di SQL Server