SQL PROGRAMMING

Câu lệnh thay thế REPLACE trong SQL

Câu lệnh thay thế REPLACE trong SQL

Giới thiệu

Trong chương này, chúng ta sẽ tìm hiểu về Câu lệnh REPLACE trong SQL và cách sử dụng Câu lệnh REPLACE trong SQL để thay thế dữ liệu trong cơ sở dữ liệu.

Câu lệnh REPLACE trong SQL

Câu lệnh Replace được sử dụng để thay thế tất cả các lần xuất hiện của một giá trị chuỗi đã chỉ định bằng một giá trị chuỗi khác. Câu lệnh Replace chèn hoặc thay thế các giá trị trong bảng. Sử dụng câu lệnh REPLACE để chèn các hàng mới vào bảng và/hoặc thay thế các hàng hiện có trong bảng.
Câu lệnh thay thế sẽ tìm kiếm một bảng để khớp dựa trên bất kỳ một trong các khóa duy nhất được xác định cho bảng đó.
Unique key được định nghĩa là Primary key constraint hoặc Unique constraint.
  • Nếu câu lệnh này không tìm thấy kết quả khớp, nó sẽ chèn một hàng mới vào bảng.
  • Nếu câu lệnh này tìm thấy kết quả khớp, nó sẽ thay thế hàng đó bằng các giá trị cột được cung cấp.
  • Nếu câu lệnh REPLACE tìm thấy kết quả khớp của nhiều hàng, nó sẽ thay thế hàng đầu tiên và nó sẽ xóa tất cả các hàng khớp khác trong bảng này.
Mệnh đề VALUES phải trả về một giá trị cho mọi cột trong danh sách column_name của bảng theo cùng thứ tự đó.
Các câu lệnh thay thế có thể được sử dụng để hợp nhất hai bảng dựa trên các giá trị cột chung.
Bảng được tham chiếu là Replace[INTO] là bảng chính và phải có ít nhất một cột được xác định là khóa duy nhất được sử dụng để so khớp. Nếu các cột được tham chiếu bởi mệnh đề “values” không cùng loại dữ liệu với các cột được xác định trong bảng Replace, thì việc chuyển đổi loại dữ liệu tự động sẽ được thực hiện.
Ghi chú
Câu lệnh Replace thực hiện thay thế không phân biệt chữ hoa chữ thường.
Câu lệnh Replace cũng loại bỏ các bản ghi bổ sung khớp với các giá trị truy vấn, chèn, cập nhật và xóa các đặc quyền được yêu cầu cho bảng đích.
Cú pháp 
  1. REPLACE ( string_expression , string_pattern , string_replacement )
Vì vậy, tất cả các lần xuất hiện của string_expression và/hoặc string_pattern sẽ được thay thế bằng string_to_replacement bất kể trường hợp của string_expression và/hoặc string_pattern hoặc string_replacement trong câu lệnh thay thế
Cú pháp
  1. SELECT REPLACE(‘DEFULTSFFG’,‘HIJ’,‘KLM’);
  2. GO
Ví dụ này chọn và thay thế tất cả dữ liệu.
Ví dụ
Tuyên bố thay thế SQL
Ví dụ sau Selects và Replaces tất cả dữ liệu.
Ví dụ sau sử dụng hàm Collection trong câu lệnh Replace.
Cú pháp
  1. SELECT REPLACE(‘This is a Sample’  COLLATE Latin1_General_BIN,
  2. ‘Sample’‘desk’ );
  3. GO
Ví dụ
Tuyên bố thay thế SQL
Truy vấn trên sẽ chọn và thay thế tệp BIN COLLATE Latin1_General thành bàn.
Chúng ta có thể sử dụng Replace để chèn hoặc thay thế các hàng có hoặc không có danh sách cột.
Cú pháp
  1. CREATE TABLE Students
  2. (Id int PRIMARY KEY identity(1,1),
  3. StudentId int)
  4. REPLACE INTO Students (Id,StudentId) VALUES (1);
Truy vấn trên tạo một bảng có tên “Students” và tên cột id là studentid, sau đó thay thế dữ liệu trong bảng Students có giá trị là một.

Cách thay thế nhiều mẫu trong một câu lệnh chuỗi đã cho

Ví dụ sau sử dụng hàm thay thế SQL để thay thế nhiều mẫu của biểu thức 3*[4+5]/{6-8}.
Cú pháp  
  1. SELECT REPLACE(REPLACE(REPLACE(REPLACE(‘2*[5+5]/{7-8}’‘[‘‘(‘), ‘]’‘)’), ‘{‘‘(‘), ‘}’‘)’);

Ví dụ 

Tuyên bố thay thế SQL
Chúng ta có thể thấy rằng hàm Replace được lồng vào nhau và nó được gọi nhiều lần để thay thế chuỗi tương ứng theo các giá trị vị trí đã xác định trong hàm SQL Replace.

Sử dụng câu lệnh Case

Trong trường hợp này, khi bạn di chuyển cơ sở dữ liệu, các đối tượng phụ thuộc cũng cần được di chuyển; ví dụ: một máy chủ được liên kết hoặc các giá trị cột cụ thể của các bảng cụ thể tham chiếu đến một bảng đã đổi tên.
Chúng ta hãy tìm hiểu sâu hơn về quy trình xử lý các thay đổi đó một cách linh hoạt bằng cách sử dụng hàm SQL Replace with SQL. Trong một dự án di chuyển cơ sở dữ liệu phức tạp, máy chủ có nhiều cấu hình Máy chủ được Liên kết.
Các máy chủ được liên kết này đã được tham chiếu và đề cập trong nhiều thủ tục được lưu trữ. Trên thực tế, việc tìm và thay thế các tập lệnh thủ tục được lưu trữ là một vấn đề nhưng mục đích là tự động hóa toàn bộ quy trình để đảm bảo rằng chúng tôi sẽ không thực hiện bất kỳ cập nhật thủ công nào.
Hãy để tôi đưa bạn qua các bước đơn giản.
Bước 1
Trong trường hợp này, mẫu tìm kiếm là một nhân viên. Ngoài ra, bạn thấy rằng ký tự thoát tùy chỉnh được sử dụng để thoát khỏi các ký tự đặc biệt ‘[‘và ‘]’ trong mẫu tìm kiếm
Cú phá

  1. DECLARE @searchPattern VARCHAR(100)= ‘EmployeeDetails’;
  2. SELECT DISTINCT
  3.        ‘sp_helptext ‘+OBJECT_SCHEMA_NAME(id)+‘.’+OBJECT_NAME(id)+‘ ‘
  4. FROM syscomments
  5. WHERE TEXT LIKE ‘%’+REPLACE(REPLACE(@searchPattern, ‘]’‘\]’), ‘[‘‘\[‘)+‘%’ ESCAPE ‘\’
  6. ORDER BY ‘sp_helptext ‘+OBJECT_SCHEMA_NAME(id)+‘.’+OBJECT_NAME(id)+‘ ‘;
Ví dụ
Tuyên bố thay thế SQL
Truy vấn trên khai báo tên cột searchPattern từ bảng EmployeeDetails và chọn DISTINCT sp_helptext cho tên cột OBJECT_SCHEMA_NAME Trong bảng syscomments và trong đó TEXT chứa cột searchPattern cho câu lệnh % và ‘\’, được sắp xếp thêm theo sp_helptext và hàm OBJECT_SCHEMA_NAME(id) và hàm OBJECT_NAME(id)

Cách thực hiện cập nhật đơn giản để thay đổi từ khóa tạo bảng Alter

Bằng cách này, tập lệnh đã sẵn sàng để thực thi trên cơ sở dữ liệu đích. Trong một số trường hợp, bạn chỉ cần giữ lại tập lệnh. Điều đó vẫn ổn nhưng đừng chạy bước này.
Cú pháp 
  1. UPDATE @sp_EmployeeDetails
  2.   SET
  3.      storedProcedureText = REPLACE(REPLACE(storedProcedureText, ‘CREATE PROCEDURE’‘ALTER PROCEDURE’), @searchpattern, @replacestring);
  4. SELECT storedProcedureText
  5. FROM @sp_EmployeeDetails;
Truy vấn trên cập nhật sp_EmployeeDetails từ bảng EmployeeDetails Name do đó đặt storeProcedureText thành Thay thế storeProcedureText và chọn storedProceduretext từ bảng EmployeeDetails.

Bản tóm tắt

Trong chương tiếp theo, chúng ta sẽ học cách làm việc với câu lệnh DROP trong SQL.

 

(Source: https://www.c-sharpcorner.com/)

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *