22/08/2018, 11:21

Xóa khóa ngoại trong SQL Server

Khi đã tạo khóa ngoại FOREIGN KEY nhưng không dùng nữa và muốn xóa đi, bạn có thể dùng lệnh ALTER TABLE trong SQL Server (Transact-SQL). Cú pháp xóa khóa ngoại trong SQL Server ALTER TABLE ten_bang DROP CONSTRAINT fk_ten; Tên biến hoặc giá trị biến ...

Khi đã tạo khóa ngoại FOREIGN KEY nhưng không dùng nữa và muốn xóa đi, bạn có thể dùng lệnh ALTER TABLE trong SQL Server (Transact-SQL).

Cú pháp xóa khóa ngoại trong SQL Server

ALTER TABLE ten_bang
DROP CONSTRAINT fk_ten;

Tên biến hoặc giá trị biến

ten_bang

Tên của bảng mà khóa ngoại đã được tạo.

fk_ten

Tên của khóa ngoại muốn xóa.

Ví dụ

CREATE TABLE sanpham
( id_sanpham INT PRIMARY KEY,
  ten_sanpham VARCHAR(50) NOT NULL,
  phan_loai VARCHAR(25)
);

CREATE TABLE hangtonkho
( id_hangtonkho INT PRIMARY KEY,
  id_sanpham INT NOT NULL,
  soluong INT,
  luong_toithieu INT,
  luong_toida INT,
  CONSTRAINT fk_htk_id_sanpham
  FOREIGN KEY (id_sanpham)
  REFERENCES sanpham (id_sanpham)
);

Ở ví dụ này, chúng ta tạo ra bảng mẹ là sanpham với khóa chính gồm trường thông tin là id_sanpham. Sau đó là bảng con có tên hangtonkho với khóa ngoại có ràng buộc xóa. Lệnh CREATE TABLE tạo khóa ngoại trên bảng hangtonkho có tên fk_htk_id_sanpham. Khóa ngoại hình thành mối quan hệ giữa cột id_sanpham trong bảng hangtonkho và id_sanpham trong bảng sanpham.

  • Kích hoạt khóa ngoại trong SQL Server
  • Khóa ngoại Foreign Key (Set Null) trong SQL Server 
  • Khóa ngoại Foreign Key (Cascade Delete) trong SQL Server 

Nếu muốn xóa khóa ngoại fk_htk_id_sanpham, thực hiện lệnh dưới đây.

ALTER TABLE hangtonkho
DROP CONSTRAINT fk_htk_id_sanpham;

Lệnh ALTER TABLE nói trên sẽ xóa ràng buộc có tên fk_htk_id_sanpham trong bảng hangtonkho.

Bài trước: Khóa ngoại Foreign Key (Set Null) trong SQL Server

Bài sau: Vô hiệu hóa khóa ngoại trong SQL Server

0