Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách tạo Ràng buộc khóa ngoại với CASCADE BẬT CẬP NHẬT trong SQL Server - Hướng dẫn sử dụng SQL Server / TSQL Phần 79

Tình huống:

Trong các bài viết trước, chúng tôi biết rằng nếu chúng tôi có Ràng buộc khóa ngoại với cài đặt mặc định và chúng tôi cố gắng cập nhật giá trị trong cột trong Bảng tham chiếu được sử dụng làm Cột tham chiếu trong Ràng buộc khóa ngoại, chúng tôi sẽ gặp lỗi. Chúng tôi đã thảo luận nhiều cách để xử lý tình huống, vui lòng kiểm tra liên kết này.
Ràng buộc khóa ngoại cung cấp tùy chọn để đặt hành động Xếp tầng, chúng tôi có thể tạo Ràng buộc khóa ngoại bằng Cập nhật xếp tầng.
Nếu cài đặt Cập nhật xếp tầng được sử dụng, khi chúng tôi cập nhật giá trị trong Bảng tham chiếu, nó cũng sẽ cập nhật giá trị trong cột bảng mẹ (Bảng khóa ngoại).
Hãy kiểm tra kịch bản này. Tạo hai bảng dbo.Customer và dbo.Orders có Mối quan hệ khóa ngoài bằng tập lệnh đã cho

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 UPDATE CASCADE
    )


    --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)
 
 
 Hãy kiểm tra dữ liệu trong bảng bằng cách sử dụng truy vấn chọn 
Cách tạo Ràng buộc khóa ngoại với Cập nhật tầng trong SQL Server


Hãy chạy câu lệnh cập nhật của chúng tôi trên CustomerId trong bảng dbo.Customer và xem nó có cập nhật giá trị cột trong dbo.Orders cho Customer_id hay không.
    update dbo.Customer
    set Customerid=100
 
 Hãy kiểm tra lại dữ liệu trong bảng của chúng ta 
Cách bật Cập nhật xếp tầng với Ràng buộc khóa ngoại trong SQL Server

Như chúng ta có thể thấy rằng giá trị cũng được cập nhật trong cột dbo.Orders.Customer_id. Video giới thiệu


:Cách tạo Ràng buộc khóa ngoại với CASCADE BẬT CẬP NHẬT trong 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. Làm cách nào để ngăn trình kích hoạt cơ sở dữ liệu tái diễn?

  2. Truyền mảng tới một thủ tục được lưu trữ trên máy chủ SQL

  3. Đảm bảo, không phá vỡ, hiệu suất SQL Server

  4. “Truy vấn không được phép trong Waitfor” Lỗi 101 trong SQL Server

  5. Làm cách nào để tự động tạo id duy nhất trong SQL như UID12345678?