Lệnh UPDATE Trong SQL Server


Trong SQL Server (Transact-SQL) lệnh UPDATE được sử dụng để cập nhật các bản ghi hiện có trên một bảng trong cơ sở dữ liệu của SQL Server. Có 3 cú pháp cho lệnh UPDATE, lệ thuộc vào việc bạn cập nhật theo kiểu truyền thống hay cập nhật một bảng bằng dữ liệu từ 1 bảng khác.

Cú pháp lệnh UPDATE

Cú pháp cập nhật bảng trong SQL Server

 UPD  ATE bang   
SET cot1 = bieuthuc1,
  cot2 = bieuthuc2,
  …
[WHERE die u_kien] ;

Cú pháp cập nhật 1 bảng bằng dữ liệu từ 1 bảng khác trong SQL Server, phối hợp lệnh SELECT.

 UPDATE ban  g1   
SET cot1 = (SELECT bieuthuc1
  FROM bang2
  WHERE dieu_kien)
[WHERE dieu_k ien];

Hoặc cú pháp khác để cập nhật một bảng bằng dữ liệu từ 1 bảng khác

 UPDATE ba  ng1   
SET bang1.cot = bang2.bieuthuc1
FROM bang1
INNER JOIN bang2
ON (bang1.cot1 = bang2.cot1)
[WHERE dieu_k ien];

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

cot1, cot2

Cột cần cập nhật.

bieuthuc1, bieuthuc2

Giá trị mới cần chỉ định cho cot1, cot2. Cot1 sẽ gán giá trị của bieuthuc1, cot2 gán giá trị của bieuthuc2…

WHERE dieu_kien

Tùy chọn. Điều kiện phải đáp ứng để bản ghi được cập nhật.

Ví dụ – cập nhật 1 cột

 UPDATE   nhanvien   
SET ho = ‘Johnson’
WHERE nhanv ien_id = 10;

Lệnh UPDATE này sẽ cập nhật họ của chuyên viên trong bảng nhanvien thành Johnson nếu nhanvien_id là 10.

Ví dụ – cập nhật nhiều cột

Đây là ví dụ cập nhật nhiều hơn 1 cột chỉ từ 1 lệnh UPDATE.

 UPDATE   nhanvien   
SET ten = ‘Kyle’,
  nhanvien_id = 14
WHERE ho = ‘Johnso n’;

Nếu muốn cập nhật nhiều cột, chỉ cần tách các cột/giá trị bằng dấu phẩy.

Lệnh UPDATE nói trên sẽ cập nhật tên thành Kyle và nhanvien_id thành 14 nếu họ của người đó là Johnson.

Ví dụ – cập nhật bảng bằng dữ liệu từ 1 bảng khác

Đây là ví dụ cập nhật bảng bằng dữ liệu từ 1 bảng khác trong MySQL.

 UPDATE nhan  vien    
SET ten = (SELECT ten
  FROM danhba
  WHERE danhba.ho = nhanvien.ho)
WHERE nhanvien_ id > 95;

Ví dụ nói trên sẽ cập nhật cho tất cả các bản ghi trong bảng nhanvien nếu nhanvien_id lớn hơn 95. Nếu họ của nhân viên ở bảng nhanvien và danhba giống nhau, thì tên trong bảng danhba sẽ có sao chép sang tay trong bảng nhanvien.

Có thể viết lại lệnh UPDATE này bằng cú pháp thứ hai dưới đây.

 UPDATE nh  anvien   
SET nhanvien.ten = danhba.ten
FROM nhanvien
INNER JOIN danhba
ON (nhanvien.ho = danhba.ho)
WHERE nhanvien _id > 95;

Bài trước: Lệnh INSERT trong SQL Server

Bài sau: Lệnh DELETE trong SQL Server

Sưu Tầm: Internet – Kênh Tin: TopVn

Bài Viết Liên Quan


Bài Viết Khác