Cách thực hiện CẬP NHẬT bằng câu lệnh CHỌN trong SQL Server

Cách thực hiện CẬP NHẬT bằng câu lệnh CHỌN trong SQL Server
Cách thực hiện CẬP NHẬT bằng câu lệnh CHỌN trong SQL Server

Cập nhật bảng bằng CHỌN trong SQL Server

Trong SQL Server, người ta thường chèn các hàng vào bảng bằng câu lệnh INSERT.. SELECT. Ví dụ: bạn có thể chèn dữ liệu vào một bảng bằng lệnh như: INSERT INTO Table(col1, col2, col3) SELECT col1, col2, col3 FROM other_table WHERE sql='cool'.

Nhưng còn việc cập nhật một bảng bằng câu lệnh SELECT thì sao? Nếu bạn có một bảng tạm thời có các giá trị và muốn cập nhật một bảng khác có các giá trị này thì có được không? Bài viết này tìm hiểu cách đạt được điều này, đồng thời cung cấp các ví dụ và giải thích rõ ràng để giúp bạn hiểu quy trình.

Yêu cầu Sự miêu tả
UPDATE Được sử dụng để sửa đổi các bản ghi hiện có trong một bảng.
SET Chỉ định các cột và giá trị mới của chúng cho bản cập nhật.
FROM Chỉ định bảng nguồn để sử dụng cho bản cập nhật.
WHERE Xác định điều kiện để chọn các hàng để cập nhật.
INSERT INTO Được sử dụng để thêm hàng mới vào bảng.
SELECT Lấy dữ liệu từ một hoặc nhiều bảng.

Hiểu cách cập nhật bằng câu lệnh CHỌN trong SQL Server

Các tập lệnh được cung cấp ở trên minh họa cách cập nhật bảng bằng cách sử dụng các giá trị từ một bảng khác trong SQL Server. Lệnh chính được sử dụng là UPDATE, điều này rất cần thiết để sửa đổi các bản ghi hiện có trong một bảng. Các SET mệnh đề chỉ định cột nào sẽ được cập nhật và giá trị mới của chúng. Tiếp theo đó là FROM mệnh đề này, cho phép bản cập nhật tham chiếu đến một bảng khác, cho phép sử dụng một cách hiệu quả SELECT câu lệnh để lấy các giá trị mới. Các WHERE mệnh đề này rất quan trọng vì nó xác định điều kiện khớp với các hàng giữa các bảng. Nếu không có điều khoản này, bản cập nhật sẽ áp dụng cho tất cả các hàng, đây thường không phải là hành vi mong muốn.

Ví dụ, hãy xem xét lệnh UPDATE target_table SET target_table.col1 = source_table.col1, target_table.col2 = source_table.col2 FROM source_table WHERE target_table.id = source_table.id. Lệnh này cập nhật col1col2 cột trong số 8 với các giá trị từ source_table ở đâu id diêm. Cách tiếp cận này đặc biệt hữu ích khi bạn có bảng phân tầng hoặc bảng tạm thời chứa các giá trị mới mà bạn muốn sử dụng để cập nhật bảng chính. Phương pháp này đảm bảo rằng chỉ các hàng dự định mới được cập nhật và cho phép xử lý hiệu quả các phép biến đổi phức tạp và di chuyển dữ liệu trong một câu lệnh SQL duy nhất.

Cập nhật bảng máy chủ SQL bằng cách sử dụng các giá trị từ bảng khác

Tập lệnh T-SQL của máy chủ SQL

-- Assume you have two tables: target_table and source_table
-- target_table has columns id, col1, col2
-- source_table has columns id, col1, col2

-- Example data in source_table
-- INSERT INTO source_table (id, col1, col2) VALUES (1, 'value1', 'value2')

-- Update target_table using values from source_table
UPDATE target_table
SET target_table.col1 = source_table.col1,
    target_table.col2 = source_table.col2
FROM source_table
WHERE target_table.id = source_table.id;

Mise à jour des données dans une table à l'aide d'une hướng dẫn CHỌN

Tập lệnh T-SQL của máy chủ SQL

-- Suppose you have two tables: main_table and temp_table
-- main_table has columns id, column1, column2
-- temp_table has columns id, column1, column2

-- Example data in temp_table
-- INSERT INTO temp_table (id, column1, column2) VALUES (2, 'data1', 'data2')

-- Perform update on main_table using data from temp_table
UPDATE main_table
SET main_table.column1 = temp_table.column1,
    main_table.column2 = temp_table.column2
FROM temp_table
WHERE main_table.id = temp_table.id;

Sử dụng lệnh SELECT pour mettre à jour une autre table

Tập lệnh T-SQL của máy chủ SQL

-- Define the structure of two tables: target_table and staging_table
-- target_table columns: id, field1, field2
-- staging_table columns: id, field1, field2

-- Sample data in staging_table
-- INSERT INTO staging_table (id, field1, field2) VALUES (3, 'info1', 'info2')

-- Execute update on target_table based on staging_table
UPDATE target_table
SET target_table.field1 = staging_table.field1,
    target_table.field2 = staging_table.field2
FROM staging_table
WHERE target_table.id = staging_table.id;

Kỹ thuật nâng cao để cập nhật bằng SELECT trong SQL Server

Một kỹ thuật hữu ích khác khi làm việc với SQL Server là sử dụng MERGE tuyên bố. Câu lệnh này cho phép bạn thực hiện các thao tác chèn, cập nhật và xóa trong một câu lệnh. Các MERGE câu lệnh đặc biệt hữu ích khi bạn cần đồng bộ hóa hai bảng. Nó cho phép bạn chỉ định một bảng nguồn và một bảng đích, sau đó xác định các hành động sẽ được thực hiện dựa trên việc có tìm thấy kết quả khớp hay không.

Ví dụ, bạn có thể sử dụng MERGE để cập nhật bảng mục tiêu với các giá trị từ bảng nguồn có ID khớp, chèn các hàng mới nếu không tìm thấy kết quả khớp và xóa các hàng trong bảng mục tiêu không có hàng tương ứng trong bảng nguồn. Điều này cung cấp một cách mạnh mẽ và linh hoạt để xử lý đồng bộ hóa dữ liệu và đảm bảo rằng tất cả các thay đổi có liên quan được thực hiện trong một hoạt động nguyên tử duy nhất. Hiểu cách sử dụng hiệu quả MERGE có thể nâng cao đáng kể khả năng quản lý và thao tác dữ liệu trong SQL Server của bạn.

Các câu hỏi và câu trả lời thường gặp về việc cập nhật bằng SELECT trong SQL Server

  1. Làm cách nào tôi có thể cập nhật nhiều cột bằng câu lệnh CHỌN?
  2. Bạn có thể cập nhật nhiều cột bằng cách chỉ định từng cột trong SET mệnh đề, như UPDATE target_table SET col1 = source_table.col1, col2 = source_table.col2 FROM source_table WHERE target_table.id = source_table.id.
  3. Có thể cập nhật bảng dựa trên điều kiện THAM GIA không?
  4. Có, bạn có thể sử dụng THAM GIA trong FROM mệnh đề cập nhật bảng dựa trên các điều kiện từ bảng khác.
  5. Tôi có thể sử dụng truy vấn phụ trong câu lệnh UPDATE không?
  6. Có, truy vấn phụ có thể được sử dụng trong SET mệnh đề để lấy giá trị từ các bảng hoặc phép tính khác.
  7. Lợi ích của việc sử dụng MERGE thay vì CẬP NHẬT đơn giản là gì?
  8. Các MERGE câu lệnh cho phép thực hiện nhiều hành động (chèn, cập nhật, xóa) trong một câu lệnh duy nhất, giúp nó hiệu quả hơn đối với các hoạt động phức tạp.
  9. Làm cách nào để xử lý các giá trị khi cập nhật bằng CHỌN?
  10. Bạn có thể sử dụng các chức năng như IS hoặc COALESCE để xử lý các giá trị trong quá trình cập nhật.
  11. Tôi có thể cập nhật bảng có dữ liệu từ bảng tạm thời không?
  12. Có, bạn có thể cập nhật bảng có dữ liệu từ bảng tạm thời bằng cú pháp tương tự như cập nhật bằng bảng thông thường.
  13. Có thể theo dõi những thay đổi được thực hiện bởi câu lệnh CẬP NHẬT không?
  14. SQL Server cung cấp các tính năng như trình kích hoạt và thu thập dữ liệu thay đổi để theo dõi các thay đổi được thực hiện bởi các câu lệnh CẬP NHẬT.
  15. Tôi nên thực hiện các biện pháp phòng ngừa nào khi thực hiện cập nhật lớn?
  16. Trước tiên, hãy cân nhắc sử dụng các giao dịch, sao lưu dữ liệu và kiểm tra câu lệnh cập nhật của bạn trên một tập dữ liệu nhỏ.
  17. Tôi có thể sử dụng mệnh đề OUTPUT với câu lệnh UPDATE không?
  18. Vâng OUTPUT mệnh đề có thể được sử dụng để trả về thông tin về từng hàng bị ảnh hưởng bởi bản cập nhật.

Tóm tắt quá trình cập nhật bằng SELECT trong SQL Server

Trong SQL Server, việc cập nhật một bảng với các giá trị từ một bảng khác có thể được thực hiện một cách hiệu quả bằng cách sử dụng UPDATESET các lệnh cùng với một FROM khoản. Phương pháp này cho phép kiểm soát chính xác những hàng nào được cập nhật bằng cách chỉ định các điều kiện trong WHERE khoản. Một kỹ thuật tiên tiến khác là sử dụng MERGE câu lệnh, cho phép thực hiện nhiều hành động như chèn, cập nhật và xóa trong một thao tác. Cả hai phương pháp đều cần thiết để duy trì tính toàn vẹn và nhất quán của dữ liệu trên các bảng khác nhau trong SQL Server.

Hiểu những kỹ thuật này có thể nâng cao đáng kể khả năng quản lý bộ dữ liệu lớn của bạn và đảm bảo rằng hoạt động cơ sở dữ liệu của bạn vừa hiệu quả vừa hiệu quả. Bằng cách nắm vững việc sử dụng UPDATE với SELECTMERGE tuyên bố, bạn có thể hợp lý hóa các tác vụ đồng bộ hóa dữ liệu của mình và giảm nguy cơ xảy ra lỗi trong môi trường SQL Server của mình.

Suy nghĩ cuối cùng về việc cập nhật bằng SELECT trong SQL Server

Sử dụng SELECT để cập nhật bảng trong SQL Server là một phương pháp mạnh mẽ và hiệu quả để quản lý dữ liệu. Bằng cách tận dụng các lệnh như UPDATE, SET, Và FROM, bạn có thể đảm bảo tính nhất quán và chính xác của dữ liệu trên các bảng của mình. Ngoài ra, MERGE tuyên bố cung cấp một giải pháp linh hoạt cho các hoạt động phức tạp hơn. Nắm vững các kỹ thuật này sẽ cho phép bạn xử lý các nhiệm vụ đồng bộ hóa và bảo trì dữ liệu một cách tự tin và chính xác.