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

Cách thêm ràng buộc khóa ngoại vào bảng hiện có trong SQL Server (T-SQL)

Theo thuật ngữ cơ sở dữ liệu, khóa ngoại là cột được liên kết với trường khóa chính của bảng khác trong mối quan hệ giữa hai bảng.

Khóa ngoại là một loại ràng buộc và vì vậy nếu bạn muốn tạo khóa ngoại trong SQL Server, bạn sẽ cần tạo một ràng buộc khóa ngoài.

Bài viết này trình bày cách tạo ràng buộc khóa ngoại trong SQL Server, sử dụng Transact-SQL.

Ví dụ

Cách dễ nhất để chứng minh điều này là với một ví dụ. Trong ví dụ này, chúng tôi sử dụng T-SQL để tạo ràng buộc khóa ngoại bằng cách sử dụng ALTER TABLE tuyên bố:

USE Music;
ALTER TABLE Albums
  ADD CONSTRAINT FK_Albums_Artists FOREIGN KEY (ArtistId)     
      REFERENCES dbo.Artists (ArtistId)
      ON DELETE CASCADE    
      ON UPDATE CASCADE
  ;
GO

Điều này tạo ra mối quan hệ giữa hai bảng (Albums bảng và Artists) bàn). Chúng tôi thực hiện việc này bằng cách tạo ràng buộc khóa ngoại trên Albums bàn. Chúng tôi chỉ định rằng Albums.ArtistId là một khóa ngoại đối với Artists.ArtistId cột.

Điều này rõ ràng giả định rằng hai bảng tồn tại. Nếu không, chúng tôi sẽ gặp lỗi.

Chúng tôi cũng sử dụng GO mà thực sự không phải là một phần của T-SQL. Nó được các tiện ích khác nhau công nhận để báo hiệu sự kết thúc của một loạt câu lệnh T-SQL.

Kiểm tra kết quả

Bạn có thể kiểm tra kết quả bằng cách chạy tập lệnh sau:

USE Music;
SELECT 
    name,
    type_desc,
    delete_referential_action_desc,
    update_referential_action_desc
FROM sys.foreign_keys;
GO

Phần này liệt kê các khóa ngoại trong Music cơ sở dữ liệu. Thay đổi tên của cơ sở dữ liệu cho phù hợp.

Nếu cơ sở dữ liệu của bạn có quá nhiều khóa ngoại, bạn luôn có thể thu hẹp nó bằng WHERE mệnh đề cho khóa ngoại cụ thể mà bạn quan tâm. Bạn cũng có thể sử dụng ký tự đại diện (* ) nếu bạn cần trả lại tất cả các cột.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giải pháp cho DATEDIFF () Bỏ qua SET DATEFIRST trong SQL Server (Ví dụ T-SQL)

  2. Cách định dạng ngày và giờ trong SQL Server

  3. Liệu một Công việc Máy chủ SQL có bỏ qua một lần chạy theo lịch trình nếu nó đang chạy không?

  4. SQL Server:Lọc đầu ra của sp_who2

  5. Tách chuỗi trong máy chủ sql