Stored procedure vào SQL Server được thực hiện để team một hoặc những câu lệnh Transact-SQL thành những đơn vị chức năng xúc tích và ngắn gọn. Stored procedure được lưu trữ bên dưới dạng những đối tượng người dùng chọn cái tên vào máy chủ đại lý dữ liệu Squốc lộ Server.

Bạn đang xem: Stored procedure là gì

Lúc chúng ta gọi một stored procedure lần trước tiên, SQL Server sẽ tạo nên một chiến lược tiến hành cùng tàng trữ nó trong cỗ đệm. Trong các lần thực thi tiếp sau của stored procedure, SQL Server thực hiện lại chiến lược để stored procedure rất có thể thực thi hết sức nhanh hao cùng với năng suất đáng tin cậy.

Trong lí giải này, bạn sẽ tìm hiểu hồ hết thiết bị chúng ta nên biết về stored procedure trong SQL Server và chỉ cho bạn bí quyết kiến tạo các stored procedure linh hoạt nhằm tối ưu hóa truy cập cửa hàng dữ liệu.

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

Trong phần này, bạn sẽ mày mò biện pháp cai quản những stored procedure vào Squốc lộ Server bao gồm sản xuất, xúc tiến, sửa đổi và xóa các stored procedure.

Tạo stored procedure dễ dàng vào SQL Server

Câu lệnh SELECT sau trả về list những sản phẩm trường đoản cú bảng products vào cơ sở tài liệu mẫu mã BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY product_name;Để chế tạo ra stored procedure bảo phủ truy tìm vấn này, chúng ta sử dụng câu lệnh CREATE PROCEDURE nhỏng 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 của stored procedure.Từ khóa AS phân làn title cùng phần thân của stored procedure.Nếu stored procedure tất cả một câu lệnh, những từ khóa BEGIN và END bảo phủ câu lệnh là tùy lựa chọn. Tuy nhiên, kia là 1 trong những thực hành thực tế tốt làm cho mã rõ ràng hơn.Lưu ý: ngoài tự khóa CREATE PROCEDURE, bạn có thể áp dụng trường đoản cú khóa CREATE PROC để làm đến câu lệnh ngắn hơn.

Để biên dịch stored procedure này, bạn tiến hành nó nhỏng một câu lệnh Squốc lộ bình thường vào SQL Server Management Studio nhỏng trong hình sau:

*

Nếu những trang bị hầu như đúng chuẩn, thì bạn sẽ thấy thông tin sau:

Commands completed successfully.Nó tức là stored procedure đã có biên dịch cùng tàng trữ thành công vào cửa hàng tài liệu.

Quý Khách rất có thể tìm kiếm thấy stored procedure trong Object Explorer, vào Programmability > Stored Procedures nhỏng vào hình sau:

*

Thông thường, bạn cần nhấp vào nút ít Refresh nhằm cập nhật bằng tay những đối tượng các đại lý tài liệu trong Object Explorer.

Thực thi stored procedure vào SQL Server

Để triển khai stored procedure, bạn sử dụng câu lệnh EXECUTE hoặc EXEC theo sau là tên của stored procedure nhỏng sau:

EXECUTE sp_name;Hoặc là

EXEC sp_name;Với sp_name là tên gọi của stored procedure nhưng mà bạn có nhu cầu triển khai.

lấy ví dụ, nhằm triển khai stored procedure uspProductList, chúng ta áp dụng câu lệnh sau:

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

*

Sửa thay đổi stored procedure vào Squốc lộ Server

Để sửa thay đổi stored procedure trong Squốc lộ Server, chúng ta thực hiện câu lệnh ALTER PROCEDURE.

Trước tiên, stored procedure để thấy ngôn từ của chính nó bằng cách nhấp chuột đề xuất vào thương hiệu stored procedure với chọn menu Modify:

*

Thứ đọng nhị, đổi khác câu chữ của stored procedure nhưng mà trong ví dụ này là bố trí các thành phầm theo giá niêm yết cố bởi vì thương hiệu sản phẩm:

ALTER PROCEDURE uspProductList AS BEGIN SELECT product_name, list_price FROM production.products ORDER BY list_price END;Thứ bố, nhấp vào nút Execute, Squốc lộ Server sửa đổi stored procedure với trả về thông tin sau:

Commands completed successfully.Bây giờ, nếu khách hàng triển khai lại stored procedure, các bạn sẽ thấy các đổi khác đang bao gồm hiệu lực:

EXEC uspProductList;Sau trên đây cho thấy 1 phần công dụng đầu ra:

*

Xóa stored procedure trong Squốc lộ Server

Để xóa stored procedure vào Squốc lộ Server, chúng ta áp dụng câu lệnh DROP PROCEDURE hoặc DROP.. PROC nhỏng sau:

DROPhường. PROCEDURE sp_name;Hoặc là

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

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

DROPhường. PROCEDURE uspProductList;Trong phần này, chúng ta vẫn học tập phương pháp làm chủ những stored procedure vào Squốc lộ Server bao hàm chế tác, thực hiện, sửa thay đổi cùng xóa các stored procedure.

Stored procedure gồm tyêu thích số trong SQL Server

Trong phần này, chúng tôi vẫn mở rộng stored procedure chất nhận được truyền một hoặc nhiều tsay đắm số cho nó. Kết trái của stored procedure đang chuyển đổi dựa trên giá trị của những tyêu thích số.

Tạo stored procedure tất cả một tham số trong Squốc lộ Server

Truy vấn tiếp sau đây trả về list thành phầm trường đoản cú bảng products vào cửa hàng tài liệu mẫu BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY list_price;quý khách có thể chế tạo stored procedure bao quanh tầm nã vấn này bằng cách áp dụng câu lệnh CREATE PROCEDURE nlỗi sau:

CREATE PROCEDURE uspFindProductsASBEGIN SELECT product_name, list_price FROM production.products ORDER BY list_price;END;Tuy nhiên, lần này bạn có thể thêm một tsi mê số vào stored procedure để tìm kiếm các thành phầm có mức giá niêm yết lớn hơn giá bán đầu vào:

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, Cửa Hàng chúng tôi sẽ thêm 1 tmê mẩn số có tên là
min_list_price. Tham mê số bắt buộc được bao bọc vì chưng cặp vệt ngoặc tròn.

Thực thi stored procedure có một tyêu thích số vào SQL Server

Để xúc tiến stored procedure uspFindProducts, chúng ta truyền một đối số đến nó nhỏng sau:

EXEC uspFindProducts 100;Sau đây cho biết đầu ra:

*

Stored procedure trả về tất cả các thành phầm có mức giá niêm yết lớn hơn hoặc bởi 100.

Nếu chúng ta thay đổi đối số thành 200, bạn sẽ cảm nhận một tập công dụng khác:

EXEC uspFindProducts 200;Sau phía trên cho thấy thêm đầu ra:

*

Tạo stored procedure có tương đối nhiều tsi mê số vào SQL Server

Stored procedure hoàn toàn có thể bao gồm một hoặc nhiều tđam mê số. Các tđắm đuối số được phân bóc bằng vết phẩy.

Câu lệnh sau sửa đổi stored procedure uspFindProducts bằng phương pháp thêm một tsay đắm 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 sửa đổi thành công xuất sắc, chúng ta cũng có thể xúc tiến nó bằng phương pháp truyền hai đối số vào stored procedure, một cho
max_list_price nlỗi sau:

EXEC uspFindProducts 900, 1000;Sau trên đây cho biết đầu ra:

*

Sử dụng tên của tmê mệt số Khi triển khai stored procedure vào Squốc lộ Server

Trong ngôi trường hòa hợp những stored procedure có không ít tyêu thích số, vẫn giỏi rộng cùng cụ thể hơn Khi thực thi cácstored procedure bằng cách thực hiện thương hiệu của các tsay mê số.

lấy ví dụ, câu lệnh sau triển khai stored procedure uspFindProducts bằng phương pháp áp dụng tên của các tmê mệt số
max_list_price = 1000;Kết trái của stored procedure là đồng nhất tuy vậy câu lệnh đã ví dụ hơn.

Tđắm đuối số kiểu chuỗi ký kết trường đoản cú mang đến stored procedure vào Squốc lộ Server

Câu lệnh sau đây thêm tsay đắm 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, Shop chúng tôi đang thêm ĐK sau:

product_name LIKE "%" +
name + "%"Bằng giải pháp này, stored procedure trả về các thành phầm có giá niêm yết phía trong phạm vi giá niêm yết buổi tối tgọi với về tối đa với thương hiệu thành phầm cũng cất một quãng văn uống bạn dạng mà lại các bạn truyền vào.

khi stored procedure được đổi khác thành công, chúng ta cũng có thể tiến hành nó như sau:

EXEC uspFindProducts
name = "Trek";Trong câu lệnh này, công ty chúng tôi vẫn thực hiện stored procedure uspFindProducts nhằm search sản phẩm có mức giá niêm yết nằm trong khoảng 900 và 1.000 và thương hiệu của chúng bao gồm đựng từ bỏ Trek.

Tấm hình dưới đây cho thấy thêm đầu ra:

*

Tạo những tham mê số tùy chọn cho stored procedure trong Squốc lộ Server

khi các bạn thực thì stored procedure uspFindProducts, bạn yêu cầu truyền cả cha đối số tương xứng cùng với cha tsi mê số của stored procedure.

SQL Server cho phép các bạn chỉ định và hướng dẫn những giá trị khoác định cho những tđam mê số để khi bạn thực thi stored procedure, chúng ta có thể bỏ qua những ttê mê số có mức giá trị mang định.

Xem stored procedure sau đây:

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 tôi sẽ gán 0 làm quý hiếm mang định mang lại tham số
max_list_price.

Khi stored procedure được biên dịch, bạn có thể thực hiện nó mà ko đề xuất truyền các đối số cho tham số
name = "Trek";Đây là kết quả:

*

Trong trường vừa lòng này, stored procedure đã thực hiện quý hiếm 0 đến tđắm đuối số
max_list_price được Hotline là tmê say số tùy chọn (optional parameters).

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

EXEC uspFindProducts
name = "Trek";

*

Sử dụng NULL làm cực hiếm mặc định đến ttê mê số của stored procedure trong SQL Server

Trong stored procedure uspFindProducts, công ty chúng tôi đang thực hiện 999.999 có tác dụng niêm yết buổi tối nhiều khoác định. Điều này không ổn định bởi vì sau này chúng ta có thể bao hàm sản phẩm có mức giá niêm yết phệ không dừng lại ở đó.

Một nghệ thuật điển hình để rời vấn đề đó là thực hiện NULL có tác dụng cực hiếm khoác định cho các tđê mê 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 tôi đang thay đổi ĐK để xử trí quý hiếm NULL mang lại tham số
max_list_price IS NULL OR list_price Tips: đó là một biểu thức điều kiện rất hay cơ mà bạn sẽ phát hiện không ít trong những dự án công trình thực tế lúc đi làm.Câu lệnh dưới đây thực hiện stored procedure uspFindProducts để kiếm tìm thành phầm có giá niêm yết to hơn hoặc bằng 500 cùng thương hiệu tất cả đựng từ bỏ Haro.

EXEC uspFindProducts
name = "Haro";

*
Trong phần này, bạn sẽ học tập giải pháp chế tác và xúc tiến stored procedure với một hoặc những tyêu thích số. quý khách đã và đang học tập giải pháp chế tạo ra những ttê mê số tùy chọn và thực hiện NULL làm cực hiếm khoác định cho những tsi số.

Biến trong Squốc lộ Server

Trong phần này, bạn sẽ tò mò về biến trong SQL Server bao hàm knhị báo biến chuyển, gán quý hiếm đến trở nên với gán các trường cực hiếm của phiên bản ghi cho vươn lên là.

Biến là gì?

Biến là một trong những đối tượng người dùng cất một giá trị tuyệt nhất của một hình dáng tài liệu ví dụ, ví dụ: integer, decimal, date hoặc chuỗi ký kết trường đoản cú, v.v.

Chúng ta thường xuyên sử dụng biến chuyển trong những trường thích hợp sau:

Là một cỗ đếm vòng lặp nhằm đếm chu kỳ vòng lặp được tiến hành.Để giữ một cực hiếm được khám nghiệm bằng câu lệnh vòng lặp, ví dụ như lệnh WHILE.Để lưu trữ quý hiếm được trả về vày một stored procedure hoặc một hàm.

Khai báo biến

Để knhì báo một biến hóa, các bạn thực hiện câu lệnh DECLARE. Ví dụ: câu lệnh sau knhì báo một phát triển thành có tên
model_year SMALLINT;Câu lệnh DECLARE tạo ra một phát triển thành bằng phương pháp gán mang đến nó một thương hiệu cùng thứ hạng dữ liệu. Tên vươn lên là đề nghị ban đầu bởi ký trường đoản cú
model_year là SMALLINT.

Xem thêm: Khoai Lang So Với Yam Là Gì ? 2021 Nghĩa Của Từ Yam, Từ Yam Là Gì

Theo mang định, lúc một thay đổi được knhì báo, quý giá của nó được đặt thành NULL.

Giữa tên vươn lên là và một số loại tài liệu, bạn cũng có thể thực hiện AStự khóa tùy lựa chọn nlỗi sau:

DECLARE
product_name VARCHAR(MAX);

Gán cực hiếm cho biến

Để gán cực hiếm cho 1 biến chuyển, bạn áp dụng câu lệnh SET. Ví dụ: câu lệnh sau gán 2018 mang đến biến đổi
model_year trong mệnh đề WHERE nhằm tìm các sản phẩm theo năm của model:

SELECT product_name, model_year, list_price FROM production.productsWHERE model_year =
model_yearORDER BY product_name;Bây tiếng, bạn cũng có thể đặt mọi sản phẩm công nghệ lại cùng nhau cùng triển khai khối mã sau để có list những sản phẩm gồm năm model 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 ý: nhằm thực hiện mã, bạn bấm chuột nút ít Exexinh đẹp nhỏng trong hình sau, hoặc nhận phím F5:

*
Bức Ảnh dưới đây cho thấy tác dụng đầu ra:

*

Lưu trữ kết quả tầm nã vấn trong biến

Các bước dưới đây bộc lộ giải pháp lưu trữ kết quả truy nã vấn trong một biến:

trước hết, knhì báo một đổi mới có tên
product_count AS VARCHAR(MAX));Kết đúng như sau:

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

SET NOCOUNT ON;

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

Các bước sau minch họa biện pháp knhị báo nhì biến, gán một bản ghi cho chúng và xuất nội dung của các biến:

Thứ nhất, knhị báo những vươn lên là nhằm lưu trữ thương hiệu thành phầm cùng giá niêm yết:

DECLARE
list_price = list_priceFROM production.productsWHERE product_id = 100;Thđọng ba, xuất câu chữ của những biến:

SELECT
list_price AS list_price;Đây là kết quả:

*

Cộng dồn những cực hiếm vào một biến

Stored procedure sau đây gồm một tsay đắm số với trả về danh sách các thành phầm dưới dạng chuỗi:

CREATE PROC uspGetProductList(
product_menu với hình dáng varchar và gán cực hiếm của nó thành trống.Thđọng tía, Cửa Hàng chúng tôi đã sử dụng câu lệnh PRINT để in ấn ra danh sách tên thành phầm.

Câu lệnh sau đây xúc tiến stored procedure uspGetProductList:

EXEC uspGetProductList 2018Hình ảnh tiếp sau đây cho thấy thêm 1 phần tác dụng đầu ra:

*

Trong phần này, chúng ta vẫn tìm hiểu về đổi thay vào SQL Server bao hàm khai báo trở nên, gán quý giá mang lại biến hóa và gán các trường của bản ghi cho những biến đổi.

Tsay mê số OUTPUT của stored procedure vào Squốc lộ Server

Trong phần này, bạn sẽ tò mò phương pháp sử dụng những tsay đắm số OUTPUT (tmê mệt số đầu ra) trong SQL Server nhằm trả tài liệu trở lại lịch trình Call.

Tạo tmê say số OUTPUT mang đến stored procedure

Để chế tạo một tyêu thích số OUTPUT đến stored procedure, các bạn thực hiện cú pháp sau:

parameter_name data_type OUTPUTMột stored procedure có thể có khá nhiều tmê mệt số OUTPUT. Bên cạnh đó, những tsi số OUTPUT rất có thể sinh sống ngẫu nhiên thứ hạng tài liệu vừa lòng lệ như thế nào như: số ngulặng, ngày tháng với chuỗi.

Ví dụ: stored procedure sau đây kiếm tìm kiếm những thành phầm theo năm Model và trả về số số lượng hàng hóa trải qua tmê say số OUTPUT là
product_count INT OUTPUT) ASBEGIN SELECT product_name, list_price FROM production.products WHERE model_year =
product_count INT OUTPUTThứ nhì, sau câu lệnh SELECT, bọn họ đang gán số lượng bản ghi được trả về bởi truy vấn vấn (
ROWCOUNT là 1 trong những đổi thay khối hệ thống trả về con số bạn dạng ghi được hiểu vì chưng câu lệnh phía trước.

Lúc chúng ta tiến hành câu lệnh CREATE PROCEDURE bên trên, stored procedure uspFindProductByModel sẽ tiến hành biên dịch và giữ trong danh mục cơ sở dữ liệu.

Nếu gần như sản phẩm công nghệ đầy đủ ổn định, SQL Server đang đưa ra thông báo sau:

Commands completed successfully.

Thực thi stored procedure cùng với những tđam mê số OUTPUT

Để triển khai stored procedure với các tmê mẩn số OUTPUT, chúng ta làm theo quá trình sau:

Thứ nhất, khai báo các trở nên nhằm tàng trữ những cực hiếm được trả về bởi vì những tmê say số OUTPUT.Thứ đọng hai, sử dụng các biến hóa này Lúc call thực hiện stored procedure.

lấy ví dụ, câu lệnh sau thực hiện stored procedure uspFindProductByModel:

DECLARE
count AS "Number of products found";Tấm hình dưới đây cho biết đầu ra:

*

Trong ví dụ này:

Đầu tiên, Cửa Hàng chúng tôi knhì báo biến chuyển
count INT;Sau đó, thực hiện stored procedure uspFindProductByModel cùng truyền những tham mê số:

EXEC uspFindProductByModel
product_count.

quý khách cũng hoàn toàn có thể xúc tiến stored procedure uspFindProductByModel nthêm gọn nhỏng sau:

EXEC uspFindProductByModel 2018,
count AS "Number of products found";Trong phần này, các bạn sẽ học cách sử dụng tyêu thích số OUTPUT nhằm truyền dữ liệu trường đoản cú stored procedure trở lại chương trình hotline.

Câu lệnh BEGIN ... END vào SQL Server

Trong phần này, các bạn sẽ tò mò cách thực hiện câu lệnh BEGIN...END trong SQL Server nhằm quấn một tập hợp những câu lệnh Transact-SQL thành một kăn năn câu lệnh.

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

Câulệnh BEGIN...END trong SQL Server được thực hiện nhằm tư tưởng một kân hận câu lệnh. Một khối câu lệnh gồm 1 tập vừa lòng những câu lệnh SQL thực hiện cùng nhau.

Nói biện pháp khác, nếu như xem mỗi câu lệnh là một trong những câu vnạp năng lượng thì câu lệnh BEGIN...END cho phép chúng ta tư tưởng một quãng vnạp năng lượng.

Sau trên đây minc họa cú pháp của câu lệnh BEGIN...END:

BEGIN statement_blockENDTrong cú pháp này, các bạn đặt một tập thích hợp các câu lệnh Squốc lộ giữa những từ bỏ khóa BEGIN với END, ví dụ:

BEGIN SELECT product_id, product_name FROM production.products WHERE list_price > 100000; IF
ROWCOUNT = 0 PRINT "No hàng hóa with price greater than 100000 found";ENDĐầu ra:

*

Để coi các thông tin được sinh sản vày câu lệnh PRINT, trong SQL Server Management Studio, bạn phải nhấp vào tab Messages. Theo khoác định, tab Results được bật cùng tab Messages bị ẩn.

Trong ví dụ này:

Trước hết, công ty chúng tôi bao gồm một kân hận lệnh bước đầu bằng trường đoản cú khóa BEGIN cùng xong xuôi bởi tự khóa END.Lưu ý:
ROWCOUNT là một đổi thay khối hệ thống trả về con số phiên bản ghi bị ảnh hưởng vày câu lệnh vùng phía đằng trước.

Câu lệnh BEGIN... END giới hạn một khối lô ghích của những câu lệnh Squốc lộ. Chúng tôi thường áp dụng câu lệnh BEGIN...END ở đầu cùng cuối của một stored procedure và function.

Câu lệnh BEGIN...END cũng rất được sử dụng cho những câu lệnh IF ELSE, câu lệnh WHILE, v.v., nhằm bao quanh các câu lệnh.

Câu lệnh BEGIN ... END lồng nhau vào SQL Server

Kăn năn câu lệnh BEGIN...END hoàn toàn có thể lồng nhau trong SQL Server. Nó đơn giản dễ dàng Có nghĩa là bạn có thể đặt một câu lệnh BEGIN...END trong một câu lệnhBEGIN... END khác .

Hãy cẩn thận ví dụ sau:

BEGIN DECLARE
name END ELSE BEGIN PRINT "No sản phẩm found"; END;ENDTrong ví dụ này, Cửa Hàng chúng tôi sẽ sử dụng câu lệnh BEGIN...END nhằm quấn toàn bộ khối câu lệnh. Bên trong khối này, công ty chúng tôi cũng áp dụng BEGIN...END cho các câu lệnh IF...ELSE.

Trong phần này, bạn đang mày mò về câu lệnh BEGIN...END vào SQL Server để quấn những câu lệnh Transact-Squốc lộ thành những khối hận lệnh.

CURSOR trong SQL Server

Trong phần này, bạn sẽ mày mò cách áp dụng CURSOR vào SQL Server nhằm xử trí một tập kết quả, các lần một bạn dạng ghi.

Squốc lộ Server hoạt động dựa trên tập vừa lòng, ví dụ, câu lệnh SELECT trả về một tập hòa hợp các phiên bản ghi được Call là tập hiệu quả. Tuy nhiên, đôi lúc, chúng ta cũng có thể hy vọng cách xử trí một tập tài liệu theo từng bản ghi. Đây là lúc CURSOR được thực hiện.

CURSOR là gì?

CURSOR (con trỏ) là 1 trong đối tượng người tiêu dùng được cho phép chu đáo qua những phiên bản ghi của tập hiệu quả. Nó chất nhận được bạn giải pháp xử lý từng bản ghi hiếm hoi được trả về bởi một truy vấn vấn.

Vòng đời của CURSOR trong Squốc lộ Server

Đây là các bước nhằm tạo nên cùng áp dụng một CURSOR:

*

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

DECLARE cursor_name CURSOR FOR select_statement;Để khai báo một CURSOR, bạn chỉ định thương hiệu của chính nó sau trường đoản cú khóa DECLARE với hình dạng tài liệu là CURSOR với cung cấp một câu lệnh SELECT định nghĩa tập công dụng đến CURSOR.

Tiếp theo, mngơi nghỉ CURSOR nhằm xúc tiến câu lệnh SELECT:

OPEN cursor_name;Sau đó, chú ý từng bạn dạng ghi vào CURSOR cùng chuyển vào trong 1 hoặc các biến:

FETCH NEXT FROM cursor INTO variable_list;Squốc lộ Server cung cấp thay đổi hệ thống
FETCHSTATUS trả về 0, có nghĩa là câu lệnh FETCH đang thành công xuất sắc. Quý khách hàng rất có thể thực hiện câu lệnh WHILE nhằm chuẩn y toàn bộ các bản ghi từ CURSOR nlỗi trong đoạn mã sau:

WHILE
FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursor_name; END;Sau Khi sẽ thông qua qua toàn bộ bản ghi trong CURSOR, họ sẽ đóng góp CURSOR bằng lệnh sau:

CLOSE cursor_name;Cuối thuộc, phân bổ CURSOR nhằm giải pngóng nó:

DEALLOCATE cursor_name;

lấy một ví dụ CURSOR vào Squốc lộ Server

Chúng tôi đã áp dụng bảng products trong đại lý tài liệu chủng loại BikeStores để minch họa đến CURSOR vào Squốc lộ Server:

*

Trước tiên, knhị báo nhị phát triển thành để tàng trữ tên thành phầm với giá niêm yết với một CURSOR nhằm tàng trữ kết quả của truy nã vấn đem thương hiệu sản phẩm cùng niêm yết từ bảng production.products:

DECLARE
list_price DECIMAL;DECLARE cursor_sản phẩm CURSORFOR SELECT product_name, list_price FROM production.products;Tiếp theo, msống CURSOR:

OPEN cursor_product;Sau kia, phê duyệt từng bạn dạng ghi từ bỏ CURSOR cùng in ra tên thành phầm với giá niêm yết:

FETCH NEXT FROM cursor_hàng hóa INTO
list_price; END;Sau kia, đóng góp CURSOR:

CLOSE cursor_product;Cuối thuộc, phân bổ CURSOR để giải phóng nó.

DEALLOCATE cursor_product;Đây là đoạn mã trả chỉnh:

DECLARE
list_price DECIMAL;DECLARE cursor_sản phẩm CURSORFOR SELECT product_name, list_price FROM production.products;OPEN cursor_product;FETCH NEXT FROM cursor_hàng hóa INTO
list_price; END;CLOSE cursor_product;DEALLOCATE cursor_product;Đây là cổng output một phần:

*

Trong thực tiễn, bạn sẽ thảng hoặc Khi thực hiện CURSOR nhằm cách xử lý tập hiệu quả bởi vì nó khôn xiết chậm trễ.

Xem thêm: Phát hiện vật lạ chưa từng thấy trên thế giới tại nơi từng có "nền văn minh khác"

Trong phần này, các bạn vẫn học phương pháp thực hiện CURSOR trong Squốc lộ Server nhằm xử lý một tập kết quả, các lần một bạn dạng ghi.

Bài viết liên quan

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 *