Procedure trong sql là gì

Procedure [Thủ tục] là một chương trình trong cơ sở dữ liệu gồm nhiều câu lệnh mà bạn lưu lại cho những lần sử dụng sau. Trong SQL Server, bạn có thể truyền các tham số vào procedure, tuy nó không trả về một giá trị cụ thể như function [hàm] nhưng cho biết việc thực thi thành công hay thất bại.

Bài viết sẽ cung cấp cho bạn cú pháp và những ví dụ về cách tạo và xóa bỏ procedure trong SQL Server.

CREATE PROCEDURE [Tạo Procedure]

Cú pháp

Để tạo một procedure trong SQL Server, ta sử dụng cú pháp như dưới đây:

CREATE { PROCEDURE | PROC } [schema_name.]procedure_name [ @parameter [type_schema_name.] datatype [ VARYING ] [ = default ] [ OUT | OUTPUT | READONLY ] , @parameter [type_schema_name.] datatype [ VARYING ] [ = default ] [ OUT | OUTPUT | READONLY ] ] [ WITH { ENCRYPTION | RECOMPILE | EXECUTE AS Clause } ] [ FOR REPLICATION ] AS BEGIN [declaration_section] executable_section END;

Tham số:

  • schema_name: Tên schema [lược đồ] sở hữu procedure.
  • procedure_name: Tên gán cho procedure
  • @parameter: Một hay nhiều tham số được truyền vào hàm.
  • type_schema_name: Kiểu dữ liệu của schema [nếu có].
  • Datatype: Kiểu dữ liệu cho @parameter.
  • Default: Giá trị mặc định gán cho @parameter.
  • OUT/OUTPUT: @parameter là một tham số đầu ra 
  • READONLY: @parameter không thể bị procedure ghi đè lên.
  • ENCRYPTION: Mã nguồn [source] của procedure sẽ không được lưu trữ dưới dạng text trong hệ thống.
  • RECOMPILE: Truy vấn sẽ không được lưu ở bộ nhớ đệm [cache] cho thủ tục này.
  • EXECUTE AS clause: Xác định ngữ cảnh bảo mật để thực thi thủ tục.
  • FOR REPLICATION: Procedure đã lưu sẽ chỉ được thực thi trong quá trình replication [nhân bản].

Ví dụ

CREATE PROCEDURE spNhanvien @nhanvien_name VARCHAR[50] OUT AS BEGIN DECLARE @nhanvien_id INT; SET @nhanvien_id = 8; IF @nhanvien_id < 10 SET @nhanvien_name = 'Smith'; ELSE SET @nhanvien_name = 'Lawrence'; END;

Thủ tục trên được gán tên là spNhanvien, có một tham số là @nhanvien_name, output của tham số sẽ được dựa trên @nhanvien_id.

Sau đó, bạn có thể thực hiện tham chiếu spNhanvien như sau:

USE [test] GO DECLARE @site_name varchar[50]; EXEC FindSite @site_name OUT; PRINT @site_name; GO

Drop Procedure [Xóa bỏ Procedure]

Một khi đã tạo thành công các procedure thì cũng sẽ có những trường hợp bạn muốn xóa bỏ procedure khỏi cơ sở dữ liệu vì một vài lý do.

Cú pháp

Để xóa bỏ một procedure, ta có cú pháp sau:

DROP PROCEDURE procedure_name;

Tham số:

procedure_name: Tên procedure bạn muốn xóa bỏ...

Ví dụ

DROP PROCEDURE spNhanvien;

Thực hiện lệnh này là bạn đã vừa xóa bỏ thủ tục spNhanvien khỏi database.

Skip to content

Stored Procedure Sql Là Gì, Stored Procedure Trong Sql Server

Stored procedure trong SQL Server được cần sử dụng để nhóm một hoặc nhiều câu lệnh Transact-SQL thành các cơ quan xúc tích. Stored procedure được tàng trữ phía dưới dạng các đối tượng người dùng quý khách hàng được đặt tên trong sever cơ sở tài liệu SQL Server.

Bài Viết: Stored procedure sql là gì

Khi chúng ta gọi một stored procedure lần đầu tiên, SQL Server sẽ khởi tạo một chiến lược xúc tiến and tàng trữ nó trong bộ đệm. Trong mỗi lần xúc tiến tiếp theo sau của stored procedure, SQL Server cần sử dụng lại chiến lược để stored procedure rất có khả năng xúc tiến rất là nhanh với công suất an toàn và đáng tin cậy.

Trong hướng dẫn này, các bạn sẽ tìm hiểu mọi thứ bạn rất cần phải biết về stored procedure trong SQL Server and chỉ cho bạn cách Thành lập và hoạt động các stored procedure biến hóa linh động để Gia Công hóa truy vấn cơ sở tài liệu.

Hướng dẫn cơ bản về stored procedure trong SQL Server

Trong phần này, các bạn sẽ tìm hiểu cách chủ tịch các stored procedure trong SQL Server bao gồm tạo, xúc tiến, chỉnh sửa and xóa các stored procedure.

Tạo stored procedure đơn giản trong SQL Server

Câu lệnh SELECT sau trả về list các dòng sản phẩm từ bảng products trong cơ sở tài liệu mẫu BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY product_name;Để khởi tạo stored procedure phủ quanh truy cập này, bạn cần sử dụng câu lệnh CREATE PROCEDURE như sau:

CREATE PROCEDURE uspProductListASBEGIN SELECT product_name, list_price FROM production.products ORDER BY product_name;END;Trong cú pháp này:

uspProductList là tên gọi của stored procedure.Từ khóa AS ngăn cách tiêu đề and phần thân của stored procedure.Nếu stored procedure có một câu lệnh, các từ khóa BEGIN and END bao quanh câu lệnh là tùy chọn. Mặc dù thế, đấy là một trong những thực hành thực tế tốt nhất có thể làm cho mã rõ ràng hơn.Lưu ý: ngoài từ khóa CREATE PROCEDURE, bạn cũng tồn tại thể cần sử dụng từ khóa CREATE PROC để làm cho câu lệnh ngắn lại hơn.

Để biên dịch stored procedure này, bạn xúc tiến nó như một câu lệnh SQL đôi lúc trong SQL Server Management Studio như trong hình sau:

Nếu mọi thứ đều chính xác, thì các bạn sẽ cảm nhận thấy thông tin sau:

Commands completed successfully.Nó nghĩa là stored procedure đã được biên dịch and tàng trữ thắng lợi vào cơ sở tài liệu.

Bạn cũng tồn tại thể tìm cảm nhận thấy stored procedure trong Object Explorer, trong Programmability > Stored Procedures như trong hình sau:

Bình thường, bạn phải nhấn vào nút Refresh để cập nhật thủ công bằng tay các đối tượng người dùng quý khách hàng cơ sở tài liệu trong Object Explorer.

Triển khai stored procedure trong SQL Server

Để xúc tiến stored procedure, bạn cần sử dụng câu lệnh EXECUTE hoặc EXEC theo sau là tên gọi của stored procedure như sau:

EXECUTE sp_name;Hoặc là

EXEC sp_name;Với sp_name là tên gọi của stored procedure mà bạn muốn xúc tiến.

Ví dụ, để xúc tiến stored procedure uspProductList, bạn cần sử dụng câu lệnh sau:

EXEC uspProductList;Stored procedure trả về đầu ra sau:

Chỉnh sửa stored procedure trong SQL Server

Để chỉnh sửa stored procedure trong SQL Server, bạn cần sử dụng câu lệnh ALTER PROCEDURE.

Đầu tiên, stored procedure để nhìn nội dung của chính bản thân nó bằng cách click chuột phải vào tên stored procedure and chọn menu Modify:

Thứ 2, biên tập nội dung của stored procedure mà trong ví dụ đó chính là sắp xếp các dòng sản phẩm theo niêm yết sửa chữa vì tên dòng sản phẩm:

ALTER PROCEDURE uspProductList AS BEGIN SELECT product_name, list_price FROM production.products ORDER BY list_price END;Thứ ba, nhấn vào nút Execute, SQL Server chỉnh sửa stored procedure and trả về thông tin sau:

Commands completed successfully.Ngày này, nếu như bạn xúc tiến lại stored procedure, các bạn sẽ cảm nhận thêm những biên tập đã có không ít hiệu lực hiện hành:

EXEC uspProductList;Sau này cho cảm nhận thấy một trong những phần tác dụng đầu ra:

Xóa stored procedure trong SQL Server

Để xóa stored procedure trong SQL Server, bạn cần sử dụng câu lệnh DROP PROCEDURE hoặc DROP PROC như sau:

DROP PROCEDURE sp_name;Hoặc là

DROP PROC sp_name;Với sp_name là tên gọi của stored procedure mà bạn muốn xóa.

Ví dụ: để xóa stored procedure uspProductList, bạn xúc tiến câu lệnh sau:

DROP PROCEDURE uspProductList;Trong phần này, bạn đã học cách chủ tịch các stored procedure trong SQL Server bao gồm tạo, xúc tiến, chỉnh sửa and xóa các stored procedure.

Stored procedure có tham số trong SQL Server

Trong phần này, chúng tôi sẽ giải phóng và mở rộng stored procedure cho phép truyền một hoặc nhiều tham số cho nó. Công dụng của stored procedure sẽ biên tập dựa vào kinh phí của không ít tham số.

Tạo stored procedure có một tham số trong SQL Server

Truy cập trong tương lai trả về list dòng sản phẩm từ bảng products trong cơ sở tài liệu mẫu BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY list_price;Bạn cũng tồn tại thể tạo stored procedure phủ quanh truy cập này bằng cách cần sử dụng câu lệnh CREATE PROCEDURE như sau:

CREATE PROCEDURE uspFindProductsASBEGIN SELECT product_name, list_price FROM production.products ORDER BY list_price;END;Mặc dù thế, lần này những bạn cũng có thể thêm một tham số vào stored procedure để tìm các dòng sản phẩm có niêm yết to nhiều hơn giá nguồn vào:

Xem Ngay:  Remote Là Gì - Nghĩa Của Từ Remote Trong Tiếng Việt

ALTER PROCEDURE uspFindProducts[ min_list_price AS DECIMAL]ASBEGIN SELECT product_name, list_price FROM production.products WHERE list_price >=

min_list_price ORDER BY list_price;END;Trong ví dụ này:

Đầu tiên, chúng mình đã thêm một tham số có tên là
min_list_price. Tham số phải được bao quanh bởi cặp dấu ngoặc tròn.

Triển khai stored procedure có một tham số trong SQL Server

Để xúc tiến stored procedure uspFindProducts, bạn truyền một đối số cho nó như sau:

EXEC uspFindProducts 100;Sau này cho cảm nhận thấy đầu ra:

Stored procedure trả về toàn bộ các dòng sản phẩm có niêm yết to nhiều hơn hoặc bằng 100.

Nếu như bạn biên tập đối số thành 200, các bạn sẽ nhận được một tập tác dụng khác:

EXEC uspFindProducts 200;Sau này cho cảm nhận thấy đầu ra:

Tạo stored procedure có rất nhiều tham số trong SQL Server

Stored procedure rất có khả năng có một hoặc nhiều tham số. Các tham số được phân tách bằng dấu phẩy.

Câu lệnh sau chỉnh sửa stored procedure uspFindProducts bằng cách thêm một tham số được có tên max_list_price AS DECIMAL]ASBEGIN SELECT product_name, list_price FROM production.products WHERE list_price >= min_list_price AND list_price Khi stored procedure được chỉnh sửa thắng lợi, bạn cũng tồn tại thể xúc tiến nó bằng cách truyền hai đối số vào stored procedure, một cho

max_list_price như sau:

EXEC uspFindProducts 900, 1000;Sau này cho cảm nhận thấy đầu ra:

Sử dụng tên của tham số khi xúc tiến stored procedure trong SQL Server

Trong tình huống các stored procedure có rất nhiều tham số, sẽ tốt nhất có thể hơn and rõ ràng hơn khi xúc tiến cácstored procedure bằng cách cần sử dụng tên của không ít tham số.

Ví dụ, câu lệnh sau xúc tiến stored procedure uspFindProducts bằng cách cần sử dụng tên của không ít tham số
max_list_price = 1000;Công dụng của stored procedure là giống hệt mặc dù vậy câu lệnh sẽ rõ ràng hơn.

Tham số kiểu chuỗi ký tự cho stored procedure trong SQL Server

Câu lệnh trong tương lai thêm tham số name AS VARCHAR[max]]ASBEGIN SELECT product_name, list_price FROM production.products WHERE list_price >=

min_list_price AND list_price Trong mệnh đề WHERE của câu lệnh SELECT, chúng mình đã thêm tình huống sau:

product_name LIKE “%” +
name + “%”Bằng cách này, stored procedure trả về các dòng sản phẩm có niêm yết phía bên trong khoanh vùng niêm yết tối thiểu and tối đa and tên dòng sản phẩm cũng tồn tại một đoạn văn bản mà bạn truyền vào.

Khi stored procedure được biên tập thắng lợi, bạn cũng tồn tại thể xúc tiến nó như sau:

EXEC uspFindProducts
name = “Trek”;Trong câu lệnh này, chúng mình đã cần sử dụng stored procedure uspFindProducts để tìm dòng sản phẩm có niêm yết phía bên trong khoảng tầm 900 and 1.000 and tên của chúng có chứa từ Trek.

Hình ảnh trong tương lai cho cảm nhận thấy đầu ra:

Tạo các tham số tùy chọn cho stored procedure trong SQL Server

Khi chúng ta thực thì stored procedure uspFindProducts, bạn rất cần phải truyền cả ba đối số khớp ứng với ba tham số của stored procedure.

SQL Server cho phép bạn bổ nhiệm các kinh phí mặc định cho các tham số để khi chúng ta xúc tiến stored procedure, bạn cũng tồn tại thể bỏ dở các tham số có kinh phí mặc định.

Xem stored procedure trong tương lai:

ALTER PROCEDURE uspFindProducts[ name AS VARCHAR[max]]ASBEGIN SELECT product_name, list_price FROM production.products WHERE list_price >= min_list_price AND list_price Trong stored procedure này, chúng mình đã gán 0 làm kinh phí mặc định cho tham số

max_list_price.

Khi stored procedure được biên dịch, bạn cũng tồn tại thể xúc tiến nó mà hoàn toàn không cần truyền các đối số cho tham số
name = “Trek”;Đó chính là tác dụng:

Trong tình huống này, stored procedure đã cần sử dụng kinh phí 0 cho tham số
max_list_price được gọi bằng tham số tùy chọn [optional parameters].

Tất nhiên, bạn cũng có thể truyền các đối số cho các tham số tùy chọn. Ví dụ: câu lệnh sau trả về toàn bộ các dòng sản phẩm có niêm yết to nhiều hơn hoặc bằng 6.000 and tên chứa từ Trek:

EXEC uspFindProducts
name = “Trek”;

Sử dụng NULL làm kinh phí mặc định cho tham số của stored procedure trong SQL Server

Trong stored procedure uspFindProducts, chúng mình đã cần sử dụng 999.999 làm niêm yết tối đa mặc định. Điều đó chưa ổn vì về sau bạn cũng tồn tại thể có những dòng sản phẩm có niêm yết lớn chưa dừng lại ở đó.

Một kỹ thuật nổi bật để né tránh điều đó chính là cần sử dụng NULL làm kinh phí mặc định cho các tham số:

ALTER PROCEDURE uspFindProducts[ name AS VARCHAR[max]]ASBEGIN SELECT product_name, list_price FROM production.products WHERE list_price >= max_list_price IS NULL OR list_price Trong mệnh đề WHERE, chúng mình đã biên tập tình huống để giải quyết kinh phí NULL cho tham số

max_list_price IS NULL OR list_price Tips: đó là một trong những biểu thức tình huống rất thú vị mà bạn sẽ thấy rất nhiều giữa những Dự Án BĐS trong thực tiễn khi đi thao tác.Câu lệnh trong tương lai xúc tiến stored procedure uspFindProducts để tìm dòng sản phẩm có niêm yết to nhiều hơn hoặc bằng 500 and tên có chứa từ Haro.

EXEC uspFindProducts
name = “Haro”;

Trong phần này, bạn đã học cách tạo and xúc tiến stored procedure với cùng một hoặc nhiều tham số. Bạn đã và đang học cách tạo các tham số tùy chọn and cần sử dụng NULL làm kinh phí mặc định cho các tham số.

Biến trong SQL Server

Trong phần này, các bạn sẽ tìm hiểu về biến trong SQL Server bao gồm khai báo biến, gán kinh phí cho biến and gán các trường kinh phí của bản ghi cho biến.

Biến là gì?

Biến là một trong những đối tượng người dùng quý khách hàng chứa một kinh phí độc tôn của 1 kiểu tài liệu chi tiết, ví dụ: integer, decimal, date hoặc chuỗi ký tự, v.v.

Xem Ngay:  Ku Klux Klan Là Gì

Chúng ta thường cần sử dụng biến giữa những tình huống sau:

Là một bộ đếm vòng lặp để đếm số lần vòng lặp được thi công.Để giữ một kinh phí được kiểm tra bằng câu lệnh vòng lặp, ví dụ điển hình như lệnh WHILE.Để tàng trữ kinh phí được trả về bởi một stored procedure hoặc một hàm.

Khai báo biến

Để khai báo một biến, bạn cần sử dụng câu lệnh DECLARE. Ví dụ: câu lệnh sau khai báo một biến có tên model_year SMALLINT;Câu lệnh DECLARE tạo một biến bằng cách gán cho nó một tên and kiểu tài liệu. Tên biến phải ban sơ bằng ký tự

model_year là SMALLINT.

Xem Ngay: Dầu Khí Tiếng Anh Là Gì – Tiếng Anh Chuyên Ngành Dầu Khí

Theo mặc định, khi 1 biến được khai báo, kinh phí của chính bản thân nó được đặt thành NULL.

Giữa tên biến and loại tài liệu, bạn cũng tồn tại thể cần sử dụng AStừ khóa tùy chọn như sau:

DECLARE
product_name VARCHAR[MAX];

Gán kinh phí cho biến

Để gán kinh phí cho 1 biến, bạn cần sử dụng câu lệnh SET. Ví dụ: câu lệnh sau gán 2018 cho biến
model_year trong mệnh đề WHERE để tìm các dòng sản phẩm theo năm của Mã Sản Phẩm:

SELECT product_name, model_year, list_price FROM production.productsWHERE model_year =
model_yearORDER BY product_name;Ngày này, bạn cũng tồn tại thể đặt mọi thứ lại với nhau and xúc tiến khối mã sau để sở hữu list các dòng sản phẩm có năm Mã Sản Phẩm là 2018:

DECLARE model_year = 2018;SELECT product_name, model_year, list_price FROM production.productsWHERE model_year =

model_yearORDER BY product_name;Lưu ý: để xúc tiến mã, bạn bấm vào nút Execute như trong hình sau, hoặc nhấn phím F5:

Hình ảnh trong tương lai cho cảm nhận thấy tác dụng đầu ra:

Tàng trữ tác dụng truy cập trong biến

Quy trình tiến độ trong tương lai biểu đạt cách tàng trữ tác dụng truy cập trong 1 biến:

Đầu tiên, khai báo một biến có tên
product_count AS VARCHAR[MAX]];Công dụng như sau:

The number of products is 204Để ẩn con số bản ghi bị ảnh hưởng, bạn cần sử dụng câu lệnh sau:

SET NOCOUNT ON;

Select một bản ghi vào biến

Quy trình tiến độ sau minh họa cách khai báo hai biến, gán một bản ghi cho chúng and xuất nội dung của không ít biến:

Đầu tiên, khai báo các biến để tàng trữ tên dòng sản phẩm and niêm yết:

DECLARE
list_price = list_priceFROM production.productsWHERE product_id = 100;Thứ ba, xuất nội dung của không ít biến:

SELECT
list_price AS list_price;Đó chính là tác dụng:

Cộng dồn các kinh phí vào trong 1 biến

Stored procedure trong tương lai có một tham số and trả về list các dòng sản phẩm phía dưới dạng chuỗi:

CREATE PROC uspGetProductList[
product_list với kiểu varchar and gán kinh phí của chính bản thân nó thành trống.Thứ ba, chúng mình đã cần sử dụng câu lệnh PRINT để in ra list tên dòng sản phẩm.

Câu lệnh trong tương lai xúc tiến stored procedure uspGetProductList:

EXEC uspGetProductList 2018Hình ảnh trong tương lai cho cảm nhận thấy một trong những phần tác dụng đầu ra:

Trong phần này, bạn đã tìm hiểu về biến trong SQL Server bao gồm khai báo biến, gán kinh phí cho biến and gán các trường của bản ghi cho các biến.

Tham số OUTPUT của stored procedure trong SQL Server

Trong phần này, các bạn sẽ tìm hiểu cách cần sử dụng các tham số OUTPUT [tham số đầu ra] trong SQL Server để trả tài liệu trở lại chương trình gọi.

Tạo tham số OUTPUT cho stored procedure

Để khởi tạo một tham số OUTPUT cho stored procedure, bạn cần sử dụng cú pháp sau:

parameter_name data_type OUTPUTMột stored procedure rất có khả năng có rất nhiều tham số OUTPUT. Không những thế, các tham số OUTPUT rất có khả năng ở ngẫu nhiên kiểu tài liệu hợp lệ nào như: số nguyên, ngày tháng and chuỗi.

Ví dụ: stored procedure trong tương lai tìm kiếm các dòng sản phẩm theo năm Mã Sản Phẩm and trả về con số dòng sản phẩm thông qua tham số OUTPUT là product_count INT OUTPUT] ASBEGIN SELECT product_name, list_price FROM production.products WHERE model_year = product_count INT OUTPUTThứ hai, sau câu lệnh SELECT, chúng ta đã gán con số bản ghi được trả về bởi truy cập [

ROWCOUNT là một trong những biến mạng lưới hệ thống trả về con số bản ghi được đọc bởi câu lệnh phần bên trước.

Khi chúng ta thi công câu lệnh CREATE PROCEDURE trên, stored procedure uspFindProductByModel sẽ được biên dịch and lưu trong hạng mục cơ sở tài liệu.

Nếu mọi thứ đều ổn, SQL Server sẽ nêu ra thông tin sau:

Commands completed successfully.

Triển khai stored procedure với các tham số OUTPUT

Để xúc tiến stored procedure với các tham số OUTPUT, bạn tuân theo quá trình sau:Đầu tiên, khai báo các biến để tàng trữ các kinh phí được trả về bởi các tham số OUTPUT.Thứ 2, cần sử dụng các biến này khi gọi xúc tiến stored procedure.

Ví dụ, câu lệnh sau thi công stored procedure uspFindProductByModel:

DECLARE
count AS “Number of products found”;Hình ảnh trong tương lai cho cảm nhận thấy đầu ra:

Trong ví dụ này:

Đầu tiên, chúng tôi khai báo biến
count INT;Kế tiếp, xúc tiến stored procedure uspFindProductByModel and truyền các tham số:

EXEC uspFindProductByModel
product_count.

Chúng ta cũng có thể xúc tiến stored procedure uspFindProductByModel ngắn gọn như sau:

EXEC uspFindProductByModel 2018,
count AS “Number of products found”;Trong phần này, bạn đã học cách cần sử dụng tham số OUTPUT để truyền tài liệu từ stored procedure trở lại chương trình gọi.

Câu lệnh BEGIN … END trong SQL Server

Trong phần này, các bạn sẽ tìm hiểu cách cần sử dụng câu lệnh BEGIN…END trong SQL Server để bọc một tập hợp các câu lệnh Transact-SQL thành một khối câu lệnh.

Xem Ngay:  Trung Tâm Trọng Tài Quốc Tế Việt Nam [ Viac Là Gì

Tổng quan về câu lệnh BEGIN…END trong SQL Server

Câulệnh BEGIN…END trong SQL Server được cần sử dụng để định nghĩa một khối câu lệnh. Một khối câu lệnh bao gồm một tập hợp các câu lệnh SQL xúc tiến cùng nhau.

Nói cách khác, nếu xem mỗi câu lệnh là một trong những câu văn thì câu lệnh BEGIN…END cho phép bạn định nghĩa một đoạn văn.

Sau này minh họa cú pháp của câu lệnh BEGIN…END:

BEGIN statement_blockENDTrong cú pháp này, bạn đặt một tập hợp các câu lệnh SQL trong số những từ khóa BEGIN and END, ví dụ:

BEGIN SELECT product_id, product_name FROM production.products WHERE list_price > 100000; IF
ROWCOUNT = 0 PRINT “No product with price greater than 100000 found”;ENDĐầu ra:

Để nhìn các thông tin được tạo bởi câu lệnh PRINT, trong SQL Server Management Studio, bạn phải nhấn vào tab Messages. Theo mặc định, tab Results được bật and tab Messages bị ẩn.

Trong ví dụ này:

Đầu tiên, chúng tôi có một khối lệnh ban sơ bằng từ khóa BEGIN and kết thúc bằng từ khóa END.Lưu ý:
ROWCOUNT là một trong những biến mạng lưới hệ thống trả về con số bản ghi bị ảnh hưởng bởi câu lệnh phần bên trước.

Câu lệnh BEGIN… END số lượng giới hạn một khối xúc tích của không ít câu lệnh SQL. Chúng tôi thường cần sử dụng câu lệnh BEGIN…END ở đầu and cuối của 1 stored procedure and function.

Câu lệnh BEGIN…END cũng được cần sử dụng cho các câu lệnh IF ELSE, câu lệnh WHILE, v.v., để phủ quanh nhiều câu lệnh.

Câu lệnh BEGIN … END lồng nhau trong SQL Server

Khối câu lệnh BEGIN…END rất có khả năng lồng nhau trong SQL Server. Nó đơn giản nghĩa là bạn cũng tồn tại thể đặt một câu lệnh BEGIN…END trong 1 câu lệnhBEGIN… END khác .

Hãy Để ý đến ví dụ sau:

BEGIN DECLARE
name END ELSE BEGIN PRINT “No product found”; END;ENDTrong ví dụ này, chúng mình đã cần sử dụng câu lệnh BEGIN…END để bọc toàn bộ tổng thể khối câu lệnh. Phía bên phía trong khối này, chúng mình cũng cần sử dụng BEGIN…END cho các câu lệnh IF…ELSE.

Trong phần này, bạn đã tìm hiểu về câu lệnh BEGIN…END trong SQL Server để bọc các câu lệnh Transact-SQL thành các khối lệnh.

CURSOR trong SQL Server

Trong phần này, các bạn sẽ tìm hiểu cách cần sử dụng CURSOR trong SQL Server để giải quyết một tập tác dụng, các lần một bản ghi.

SQL Server hoạt động dựa vào tập hợp, ví dụ, câu lệnh SELECT trả về một tập hợp các bản ghi được gọi bằng tập tác dụng. Mặc dù thế, đôi chút, bạn cũng tồn tại thể muốn giải quyết một tập tài liệu theo từng bản ghi. Đó chính là lúc CURSOR được cần sử dụng.

CURSOR là gì?

CURSOR [con trỏ] là một trong những đối tượng người dùng quý khách hàng cho phép duyệt qua các bản ghi của tập tác dụng. Nó cho phép bạn giải quyết từng bản ghi riêng biệt được trả về bởi một truy cập.

Vòng đời của CURSOR trong SQL Server

Đó chính là quá trình để có thể tạo and cần sử dụng một CURSOR:

Đầu tiên, khai báo một CURSOR.

DECLARE cursor_name CURSOR FOR select_statement;Để khai báo một CURSOR, bạn bổ nhiệm tên của chính bản thân nó sau từ khóa DECLARE với kiểu tài liệu là CURSOR and đống ý một câu lệnh SELECT định nghĩa tập tác dụng cho CURSOR.

Tiếp theo sau, mở CURSOR để xúc tiến câu lệnh SELECT:

OPEN cursor_name;Kế tiếp, duyệt từng bản ghi trong CURSOR and đưa vào trong 1 hoặc nhiều biến:

FETCH NEXT FROM cursor INTO variable_list;SQL Server đống ý biến mạng lưới hệ thống
FETCHSTATUS trả về 0, nghĩa là câu lệnh FETCH đã thắng lợi. Bạn cũng tồn tại thể cần sử dụng câu lệnh WHILE để duyệt toàn bộ các bản ghi từ CURSOR như trong đoạn mã sau:

WHILE
FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursor_name; END;Sau thời điểm đã duyệt qua toàn bộ bản ghi trong CURSOR, những các bạn sẽ đóng CURSOR bằng lệnh sau:

CLOSE cursor_name;Sau cuối, phân bố CURSOR để giải phóng nó:

DEALLOCATE cursor_name;

Ví dụ CURSOR trong SQL Server

Chúng tôi sẽ cần sử dụng bảng products trong cơ sở tài liệu mẫu BikeStores để minh họa cho CURSOR trong SQL Server:

Đầu tiên, khai báo hai biến để tàng trữ tên dòng sản phẩm and niêm yết and một CURSOR để tàng trữ tác dụng của truy cập lấy tên dòng sản phẩm and niêm yết từ bảng production.products:

DECLARE
list_price DECIMAL;DECLARE cursor_product CURSORFOR SELECT product_name, list_price FROM production.products;Tiếp theo sau, mở CURSOR:

OPEN cursor_product;Kế tiếp, duyệt từng bản ghi từ CURSOR and in ra tên dòng sản phẩm and niêm yết:

FETCH NEXT FROM cursor_product INTO
list_price; END;Kế tiếp, đóng CURSOR:

CLOSE cursor_product;Sau cuối, phân bố CURSOR để giải phóng nó.

DEALLOCATE cursor_product;Đó chính là đoạn mã hoàn hảo:

DECLARE list_price DECIMAL;DECLARE cursor_product CURSORFOR SELECT product_name, list_price FROM production.products;OPEN cursor_product;FETCH NEXT FROM cursor_product INTO

list_price; END;CLOSE cursor_product;DEALLOCATE cursor_product;Đó chính là đầu ra một trong những phần:

Trong trong thực tiễn, các bạn sẽ hiếm khi cần sử dụng CURSOR để giải quyết tập tác dụng vì chúng rất chậm.

Xem Ngay: Glyphosate Là Gì – Thuốc Diệt Cỏ Gây Ung Thư

Trong phần này, bạn đã học cách cần sử dụng CURSOR trong SQL Server để giải quyết một tập tác dụng, các lần một bản ghi.

Thể Loại: San sẻ Kiến Thức Cộng Đồng

Bài Viết: Stored Procedure Sql Là Gì, Stored Procedure Trong Sql Server

Thể Loại: LÀ GÌ

Nguồn Blog là gì: //hethongbokhoe.com Stored Procedure Sql Là Gì, Stored Procedure Trong Sql Server

Video liên quan

Chủ Đề