Trong lý giải này, bạn sẽ khám phá giải pháp áp dụng câu lệnh UPDATE trong SQL Server nhằm chuyển đổi tài liệu hiện nay tất cả vào một bảng.

Bạn đang xem: Câu lệnh update trong sql server

Để sửa thay đổi dữ liệu hiện nay bao gồm vào một bảng, bạn thực hiện cú pháp câu lệnh UPDATE nlỗi sau:

UPDATE table_nameSET c1 = v1, c2 = v2, ... cn = vnTrong cú pháp này:

Trước hết, hướng đẫn tên của bảng mà tài liệu sẽ được update.Thứ đọng nhị, hướng dẫn và chỉ định list cột c1, c2, ... cn cùng các quý hiếm v1, v2, ... vn sẽ được update.

Ví dụ về UPDATE trong SQL Server

Thứ nhất, Shop chúng tôi sẽ tạo nên một bảng new có tên taxes để minch họa câu lệnh UPDATE vào Squốc lộ Server.

CREATE TABLE sales.taxes ( tax_id INT PRIMARY KEY IDENTITY (1, 1), state VARCHAR (50) NOT NULL UNIQUE, state_tax_rate DEC (3, 2), avg_local_tax_rate DEC (3, 2), combined_rate AS state_tax_rate + avg_local_tax_rate, max_local_tax_rate DEC (3, 2), updated_at datetime);Thứ hai, tiến hành các câu lệnh sau để INSERT tài liệu vào bảng taxes:

INSERT INTO sales.taxes( state, state_tax_rate, avg_local_tax_rate, max_local_tax_rate) VALUES("Alabama",0.04,0.05,0.07),VALUES("Alaska",0,0.01,0.07),VALUES("Arizona",0.05,0.02,0.05),VALUES("Arkansas",0.06,0.02,0.05),VALUES("California",0.07,0.01,0.02),VALUES("Colorado",0.02,0.04,0.08),VALUES("Connecticut",0.06,0,0),VALUES("Delaware",0,0,0),VALUES("Florida",0.06,0,0.02),VALUES("Georgia",0.04,0.03,0.04),VALUES("Hawaii",0.04,0,0),VALUES("Idaho",0.06,0,0.03),VALUES("Illinois",0.06,0.02,0.04),VALUES("Indiana",0.07,0,0),VALUES("Iowa",0.06,0,0.01),VALUES("Kansas",0.06,0.02,0.04),VALUES("Kentucky",0.06,0,0),VALUES("Louisiana",0.05,0.04,0.07),VALUES("Maine",0.05,0,0),VALUES("Maryland",0.06,0,0),VALUES("Massachusetts",0.06,0,0),VALUES("Michigan",0.06,0,0),VALUES("Minnesota",0.06,0,0.01),VALUES("Mississippi",0.07,0,0.01),VALUES("Missouri",0.04,0.03,0.05),VALUES("Montana",0,0,0),VALUES("Nebraska",0.05,0.01,0.02),VALUES("Nevada",0.06,0.01,0.01),VALUES("New Hampshire",0,0,0),VALUES("New Jersey",0.06,0,0),VALUES("New Mexico",0.05,0.02,0.03),VALUES("New York",0.04,0.04,0.04),VALUES("North Carolina",0.04,0.02,0.02),VALUES("North Dakota",0.05,0.01,0.03),VALUES("Ohio",0.05,0.01,0.02),VALUES("Oklahoma",0.04,0.04,0.06),VALUES("Oregon",0,0,0),VALUES("Pennsylvania",0.06,0,0.02),VALUES("Rhode Island",0.07,0,0),VALUES("South Carolina",0.06,0.01,0.02),VALUES("South Dakota",0.04,0.01,0.04),VALUES("Tennessee",0.07,0.02,0.02),VALUES("Texas",0.06,0.01,0.02),VALUES("Utah",0.05,0,0.02),VALUES("Vermont",0.06,0,0.01),VALUES("Virginia",0.05,0,0),VALUES("Washington",0.06,0.02,0.03),VALUES("West Virginia",0.06,0,0.01),VALUES("Wisconsin",0.05,0,0.01),VALUES("Wyoming",0.04,0.01,0.02),VALUES("D.C.",0.05,0,0);

Cập nhật một cột trong toàn bộ những bản ghi

Câu lệnh dưới đây cập nhật một cột tốt nhất mang lại tất cả những bạn dạng ghi vào bảng taxes:

UPDATE sales.taxesSET updated_at = GETDATE();Trong ví dụ này, câu lệnh vẫn chuyển đổi các quý hiếm trong cột updated_at thành thời hạn ngày hệ thống được trả về vì chưng hàm GETDATE().

Squốc lộ Server vẫn giới thiệu thông báo sau:

(51 rows affected)Nó Tức là 51 bản ghi đã làm được update thành công xuất sắc.

Hãy xác minh update bên trên nhỏng sau:

SELECT *FROM sales.taxes;Đây là cổng đầu ra một phần:

*

Nlỗi chúng ta có thể thấy kết quả cổng đầu ra, cột updated_at đã làm được update với cái giá trị ngày hiện thời.

Cập nhật các cột

Câu lệnh sau đây làm tăng nút thuế suất địa phương buổi tối nhiều thêm 2% và mức thuế suất địa phương thơm mức độ vừa phải thêm 1% đối với các tè bang gồm nấc thuế suất địa phương tối đa 1%.

UPDATE sales.taxesSET max_local_tax_rate += 0.02, avg_local_tax_rate += 0.01WHERE max_local_tax_rate = 0.01;Đây là thông báo được trả về vì chưng SQL Server:

(7 rows affected)Nó có nghĩa là thuế của 7 đái bang đã được update.

UPDATE JOIN vào Squốc lộ Server

Trong phần này, các bạn sẽ mày mò cách áp dụng câu lệnh UPDATE JOIN trong SQL Server để triển khai cập nhật một bảng dựa vào những cực hiếm xuất phát điểm từ 1 bảng không giống bởi mệnh đề JOIN.

Xem thêm: Tải Game Cartoon Wars 3 V2, Tải Game Cartoon Wars 3 Apk Miễn Phí Cho Android

Cú pháp UPDATE JOIN trong SQL Server

Để truy nã vấn tài liệu tự các bảng có tương quan, bạn hay áp dụng những mệnh đề JOIN, INNER JOIN hoặc LEFT JOIN. Trong SQL Server, chúng ta có thể áp dụng các mệnh đề JOIN vào câu lệnh UPDATE nhằm triển khai cập nhật một bảng dựa trên các quý giá từ 1 bảng không giống.

Sau đây minch họa cú pháp của mệnh đề UPDATE JOIN:

UPDATE t1SET t1.c1 = t2.c2, t1.c2 = expression, ... FROM t1 JOIN t2 ON join_predicateWHERE where_predicate;Trong cú pháp này:

Trước hết, chỉ định và hướng dẫn tên của bảng (t1) cơ mà bạn có nhu cầu cập nhật trong mệnh đề UPDATE.Thứ hai, hướng đẫn quý giá mới cho từng cột của bảng được cập nhật.Thứ cha, một lần nữa hướng dẫn và chỉ định bảng nhưng bạn muốn update vào mệnh đề FROM.

Ví dụ về UPDATE JOIN trong Squốc lộ Server

Chúng ta hãy coi một vài ví dụ về Việc áp dụng câu lệnh UPDATE JOIN.

Tạo bảng tài liệu mẫu

Trước tiên, tạo nên một bảng new mang tên là sales.targets nhằm tàng trữ những mục tiêu phân phối hàng:

DROPhường. TABLE IF EXISTS sales.targets;CREATE TABLE sales.targets( target_id INTPRIMARY KEY, percentage DECIMAL(4, 2) NOT NULL DEFAULT 0);INSERT INTO sales.targets(target_id, percentage)VALUES (1,0.2), (2,0.3), (3,0.5), (4,0.6), (5,0.8);Nếu nhân viên cấp dưới bán sản phẩm đạt được phương châm 1, chúng ta đã nhận ra Phần Trăm hoả hồng bán sản phẩm 0,2 hoặc 20%, v.v.

Thđọng hai, sinh sản một bảng không giống có tên là sales.commissions để lưu trữ hoa hồng phân phối hàng:

CREATE TABLE sales.commissions( staff_id INT PRIMARY KEY, target_id INT, base_amount DECIMAL(10, 2) NOT NULL DEFAULT 0, commission DECIMAL(10, 2) NOT NULL DEFAULT 0, FOREIGN KEY(target_id) REFERENCES sales.targets(target_id), FOREIGN KEY(staff_id) REFERENCES sales.staffs(staff_id),);INSERT INTO sales.commissions(staff_id, base_amount, target_id)VALUES (1,100000,2), (2,120000,1), (3,80000,3), (4,900000,4), (5,950000,5);Bảng sales.commissions lưu trữ thông báo định danh nhân viên cấp dưới bán sản phẩm, target_id, base_amount và commission. Bảng này liên kết với bảng sales.targets trải qua cột target_id.

Mục tiêu của chúng tôi là tính tân oán hoa hồng của tất cả nhân viên cấp dưới bán sản phẩm dựa vào kim chỉ nam bán sản phẩm của họ.

Ví dụ về UPDATE INNER JOIN vào SQL Server

Câu lệnh tiếp sau đây áp dụng UPDATE INNER JOIN nhằm tính hoa hồng bán sản phẩm mang đến tất cả nhân viên chào bán hàng:

UPDATE sales.commissionsSET sales.commissions.commission = c.base_amount * t.percentageFROM sales.commissions cINNER JOIN sales.targets t ON c.target_id = t.target_id;Đây là đầu ra:

(5 rows affected)Nếu chúng ta truy nã vấn lại bảng sales.commissions, các bạn sẽ thấy các quý giá vào cột hoả hồng được cập nhật:

SELECT *FROM sales.commissions;

*

ví dụ như về UPDATE LEFT JOIN vào SQL Server

Giả sử Shop chúng tôi có thêm nhị nhân viên bán hàng bắt đầu tmê mẩn gia cùng họ chưa tồn tại phương châm nào:

INSERT INTO sales.commissions(staff_id, base_amount, target_id)VALUES (6,100000,NULL), (7,120000,NULL);Chúng tôi mang định rằng huê hồng mang đến nhân viên bán hàng new là 0,1 hoặc 10%, chúng tôi có thể update hoa hồng của tất cả nhân viên cấp dưới bán sản phẩm bằng phương pháp thực hiện UPDATE LEFT JOIN nhỏng sau:

UPDATE sales.commissionsSET sales.commissions.commission = c.base_amount * COALESCE(t.percentage,0.1)FROM sales.commissions cLEFT JOIN sales.targets t ON c.target_id = t.target_id;Trong ví dụ này, công ty chúng tôi vẫn áp dụng COALESCE() để trả về 0,1 nếu như xác suất Xác Suất là NULL.

Lưu ý: nếu như khách hàng sử dụng mệnh đề UPDATE INNER JOIN, chỉ năm hàng của bảng có phương châm không phải là NULL sẽ được update.

Hãy coi dữ liệu trong bảng sales.commissions:

SELECT * FROM sales.commissions;Tập công dụng như sau:

*

Trong khuyên bảo này, chúng ta vẫn học tập bí quyết áp dụng câu lệnh UPDATE trong Squốc lộ Server nhằm sửa thay đổi tài liệu hiện có vào một bảng.