Stored procedure trong Squốc lộ Server được sử dụng để đội một hoặc các câu lệnh Transact-SQL thành các đơn vị xúc tích và ngắn gọn. Stored procedure được tàng trữ bên dưới dạng những đối tượng người sử dụng chọn cái tên vào sever cơ sở dữ liệu SQL Server.
Bạn đang xem: Stored procedure là gì
khi chúng ta hotline một stored procedure lần thứ nhất, SQL Server sẽ tạo một planer tiến hành và tàng trữ nó vào cỗ đệm. Trong những lần triển khai tiếp sau của stored procedure, SQL Server sử dụng lại planer để stored procedure có thể thực thi rất nhanh hao cùng với năng suất đáng tin cậy.
Trong khuyên bảo này, các bạn sẽ mày mò đều vật dụng bạn nên biết về stored procedure trong Squốc lộ Server còn chỉ cho chính mình bí quyết chế tạo những stored procedure linc hoạt để về tối ưu hóa truy vấn cửa hàng dữ liệu.
Hướng dẫn cơ bạn dạng về stored procedure trong SQL Server
Trong phần này, bạn sẽ tò mò biện pháp thống trị các stored procedure vào Squốc lộ Server bao gồm chế tác, xúc tiến, sửa đổi với xóa các stored procedure.
Tạo stored procedure dễ dàng trong Squốc lộ 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ửa hàng tài liệu chủng loại BikeStores:
SELECT product_name, list_priceFROM production.productsORDER BY product_name;Để tạo stored procedure phủ bọc truy vấn này, bạn sử dụng câu lệnh CREATE PROCEDURE nlỗi 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 cách tiêu đề và phần thân của stored procedure.Nếu stored procedure tất cả một câu lệnh, những từ bỏ khóa BEGIN với END bao quanh câu lệnh là tùy chọn. Tuy nhiên, kia là 1 thực hành thực tế giỏi làm cho mã ví dụ rộng.Lưu ý: không tính tự khóa CREATE PROCEDURE, bạn cũng có thể thực hiện từ khóa CREATE PROC để gia công mang lại câu lệnh ngắn lại.Để biên dịch stored procedure này, chúng ta tiến hành nó như một câu lệnh Squốc lộ bình thường vào SQL Server Management Studio như vào hình sau:

Nếu hầu hết lắp thêm phần lớn chính xác, thì các bạn sẽ thấy thông tin sau:
Commands completed successfully.Nó Tức là stored procedure đã có biên dịch với lưu trữ thành công xuất sắc vào cơ sở dữ liệu.
quý khách rất có thể search thấy stored procedure trong Object Explorer, vào Programmability > Stored Procedures nhỏng vào hình sau:

Đôi khi, bạn phải nhấp vào nút ít Refresh nhằm cập nhật thủ công những đối tượng người tiêu dùng cơ sở tài liệu trong Object Explorer.
Thực thi stored procedure vào SQL Server
Để thực thi stored procedure, các bạ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à lại bạn muốn tiến hành.
ví dụ như, để thực thi stored procedure uspProductList, các bạn thực hiện câu lệnh sau:
EXEC uspProductList;Stored procedure trả về đầu ra sau:

Sửa đổi stored procedure vào Squốc lộ Server
Để sửa đổi stored procedure trong SQL Server, các bạn thực hiện câu lệnh ALTER PROCEDURE.
Trước tiên, stored procedure để xem nội dung của chính nó bằng phương pháp bấm chuột yêu cầu vào tên stored procedure cùng lựa chọn menu Modify:

Thứ đọng nhị, biến đổi văn bản của stored procedure nhưng vào ví dụ này là bố trí những sản phẩm theo giá niêm yết núm vị tên sản phẩm:
ALTER PROCEDURE uspProductList AS BEGIN SELECT product_name, list_price FROM production.products ORDER BY list_price END;Thứ đọng bố, nhấp vào nút ít Execute, Squốc lộ Server sửa thay đổi stored procedure và trả về thông tin sau:
Commands completed successfully.Bây tiếng, nếu như khách hàng xúc tiến lại stored procedure, bạn sẽ thấy những chuyển đổi vẫn có hiệu lực:
EXEC uspProductList;Sau trên đây cho thấy một phần kết quả đầu ra:

Xóa stored procedure vào SQL Server
Để xóa stored procedure vào Squốc lộ Server, chúng ta sử dụng câu lệnh DROPhường PROCEDURE hoặc DROPhường PROC nlỗi sau:
DROP PROCEDURE sp_name;Hoặc là
DROP.. PROC sp_name;Với sp_name là tên của stored procedure mà bạn muốn xóa.
Ví dụ: nhằm xóa stored procedure uspProductList, chúng ta thực hiện câu lệnh sau:
DROPhường PROCEDURE uspProductList;Trong phần này, bạn đã học tập biện pháp thống trị các stored procedure vào SQL Server bao gồm tạo nên, thực thi, sửa thay đổi và xóa các stored procedure.
Stored procedure gồm tmê mệt số trong Squốc lộ Server
Trong phần này, Shop chúng tôi vẫn không ngừng mở rộng stored procedure có thể chấp nhận được truyền một hoặc nhiều tsi số mang đến nó. Kết trái của stored procedure đã chuyển đổi dựa trên quý hiếm của các tđam mê số.
Tạo stored procedure có một tsi mê số vào Squốc lộ Server
Truy vấn dưới đây trả về list thành phầm từ bảng products trong cơ sở tài liệu chủng loại BikeStores:
SELECT product_name, list_priceFROM production.productsORDER BY list_price;quý khách hoàn toàn có thể sinh sản stored procedure bảo phủ truy hỏi vấn này bằng phương pháp á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 1 tmê man số vào stored procedure để tìm kiếm những sản 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:
min_list_price. Ttê mê số đề xuất được phủ bọc bởi cặp dấu ngoặc tròn.
Thực thi stored procedure bao gồm một tham mê số trong Squốc lộ Server
Để xúc tiến stored procedure uspFindProducts, bạn truyền một đối số cho nó như sau:
EXEC uspFindProducts 100;Sau đây cho thấy đầu ra:

Stored procedure trả về tất cả những sản phẩm có giá niêm yết lớn hơn hoặc bằng 100.
Nếu chúng ta biến đổi đối số thành 200, các bạn sẽ nhận ra một tập công dụng khác:
EXEC uspFindProducts 200;Sau đây cho thấy đầu ra:

Tạo stored procedure có rất nhiều tđắm đuối số vào Squốc lộ Server
Stored procedure rất có thể gồm một hoặc các tđam mê số. Các tsay mê số được phân tách bởi vết phẩy.
Câu lệnh sau sửa thay đổi stored procedure uspFindProducts bằng cách thêm 1 tham 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 lúc stored procedure được sửa đổi thành công, bạn cũng có thể thực hiện nó bằng phương pháp truyền nhì đối số vào stored procedure, một đến
max_list_price nlỗi sau:
EXEC uspFindProducts 900, 1000;Sau đây cho thấy đầu ra:

Sử dụng tên của tsi số Khi thực hiện stored procedure vào Squốc lộ Server
Trong trường vừa lòng những stored procedure có khá nhiều tmê man số, vẫn xuất sắc hơn và rõ ràng rộng Khi tiến hành cácstored procedure bằng phương pháp sử dụng tên của các tđê mê số.
Ví dụ, câu lệnh sau thực hiện stored procedure uspFindProducts bằng phương pháp sử dụng tên của các tham 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ẫn rõ ràng rộng.
Tsi số mẫu mã chuỗi ký kết tự mang lại stored procedure vào SQL Server
Câu lệnh dưới đây thêm tmê man 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, công ty chúng tôi sẽ thêm điều kiện sau:
product_name LIKE "%" +
name + "%"Bằng giải pháp này, stored procedure trả về những sản phẩm có giá niêm yết bên trong phạm vi niêm yết về tối tphát âm cùng về tối nhiều cùng tên sản phẩm cũng chứa một quãng vnạp năng lượng phiên bản mà bạn truyền vào.
khi stored procedure được chuyển đổi thành công xuất sắc, chúng ta có thể thực hiện nó như sau:
EXEC uspFindProducts
name = "Trek";Trong câu lệnh này, chúng tôi đang thực hiện stored procedure uspFindProducts để kiếm tìm sản phẩm có giá niêm yết ở trong tầm 900 cùng 1.000 cùng tên của bọn chúng tất cả chứa trường đoản cú Trek.
Hình ảnh sau đây cho biết thêm đầu ra:

Tạo những tmê say số tùy chọn mang đến stored procedure trong SQL Server
Khi bạn thực thì stored procedure uspFindProducts, các bạn bắt buộc truyền cả ba đối số tương xứng với tía tham mê số của stored procedure.
Squốc lộ Server cho phép các bạn chỉ định và hướng dẫn những cực hiếm mặc định cho các tmê mẩn số để khi bạn triển khai stored procedure, bạn cũng có thể bỏ qua mất các tsi mê số có giá trị mặc đị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, Shop chúng tôi đang gán 0 làm quý hiếm mặc định cho tyêu thích số
max_list_price.
khi stored procedure được biên dịch, bạn có thể xúc tiến nó nhưng mà ko nên truyền những đối số mang đến tmê mẩn số
name = "Trek";Đây là kết quả:

Trong trường đúng theo này, stored procedure đã sử dụng quý hiếm 0 mang lại tđắm đuối số
max_list_price được Hotline là tsi số tùy lựa chọn (optional parameters).
Tất nhiên, bạn có thể truyền những đối số cho những tđam mê số tùy chọn. Ví dụ: câu lệnh sau trả về toàn bộ những sản phẩm có giá niêm yết to hơn hoặc bởi 6.000 cùng thương hiệu chứa trường đoản cú Trek:
EXEC uspFindProducts
name = "Trek";

Sử dụng NULL làm quý hiếm mang định cho tham số của stored procedure trong Squốc lộ Server
Trong stored procedure uspFindProducts, công ty chúng tôi vẫn sử dụng 999.999 có tác dụng giá niêm yết tối nhiều khoác định. Điều này không ổn vày trong tương lai bạn cũng có thể có những thành phầm có giá niêm yết phệ hơn thế.Một kỹ thuật điển hình nổi bật để rời vấn đề này là sử dụng NULL làm giá trị mang định cho những tsay đắ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, Shop chúng tôi đã biến đổi ĐK nhằm giải pháp xử lý quý hiếm NULL cho tđam mê số
max_list_price IS NULL OR list_price Tips: đây là một biểu thức điều kiện rất lôi cuốn cơ mà bạn sẽ phát hiện không ít trong những dự án công trình thực tiễn Khi đi làm.Câu lệnh sau đây tiến hành stored procedure uspFindProducts nhằm search thành phầm có mức giá niêm yết to hơn hoặc bởi 500 cùng thương hiệu tất cả đựng tự Haro.
EXEC uspFindProducts
name = "Haro";

Biến trong Squốc lộ Server
Trong phần này, bạn sẽ mày mò về trở nên vào Squốc lộ Server bao hàm khai báo thay đổi, gán quý hiếm cho đổi thay cùng gán các trường quý giá của bạn dạng ghi mang đến trở nên.
Biến là gì?
Biến là 1 trong những đối tượng đựng một quý giá độc nhất của một thứ hạng tài liệu ví dụ, ví dụ: integer, decimal, date hoặc chuỗi cam kết từ, v.v.
Chúng ta hay thực hiện trở thành trong số trường hợp sau:
Là một bộ đếm vòng lặp để đếm mốc giới hạn vòng lặp được tiến hành.Để duy trì một giá trị được bình chọn bằng câu lệnh vòng lặp, chẳng hạn như lệnh WHILE.Để lưu trữ giá trị được trả về vày một stored procedure hoặc một hàm.Knhị báo biến
Để khai báo một biến đổi, chúng ta sử dụng câu lệnh DECLARE. Ví dụ: câu lệnh sau khai báo một thay đổi mang tên
model_year SMALLINT;Câu lệnh DECLARE tạo một trở nên bằng phương pháp gán cho nó một tên cùng dạng hình dữ liệu. Tên phát triển thành phải bắt đầu bởi cam kết từ bỏ
model_year là SMALLINT.
Xem thêm: Install Cimatron E12 Crack Archi, Cimatron E12 License Permanent
Theo mang định, lúc một trở nên được knhị báo, quý hiếm của nó được đặt thành NULL.
Giữa tên biến chuyển với loại dữ liệu, chúng ta cũng có thể sử dụng AStrường đoản cú khóa tùy lựa chọn nlỗi sau:
DECLARE
product_name VARCHAR(MAX);
Gán quý hiếm mang lại biến
Để gán cực hiếm cho 1 biến đổi, chúng ta sử dụng câu lệnh SET. Ví dụ: câu lệnh sau gán 2018 mang lại biến hóamodel_year trong mệnh đề WHERE để tìm những 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 giờ đồng hồ, chúng ta có thể đặt hồ hết sản phẩm công nghệ lại cùng nhau cùng thực thi kăn năn mã sau để sở hữu list những sản phẩm tất cả 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 ý: để thực hiện mã, chúng ta nhấn vào nút ít Exedễ thương nlỗi trong hình sau, hoặc dấn phím F5:


Lưu trữ công dụng truy vấn trong biến
Các bước sau đây trình bày giải pháp lưu trữ kết quả truy tìm vấn vào một biến:
Trước hết, khai báo một biến mang tên
product_count AS VARCHAR(MAX));Kết đúng thật sau:
The number of products is 204Để ẩn số lượng bản ghi bị tác động, các bạn sử dụng câu lệnh sau:
SET NOCOUNT ON;
Select một bạn dạng ghi vào biến
Các bước sau minc họa bí quyết knhị báo nhì biến, gán một bản ghi cho cái đó cùng xuất văn bản của những biến:Trước hết, knhì báo những vươn lên là nhằm tàng trữ thương hiệu sản phẩm cùng giá niêm yết:
DECLARE
list_price = list_priceFROM production.productsWHERE product_id = 100;Thđọng cha, xuất ngôn từ của những biến:
SELECT
list_price AS list_price;Đây là kết quả:

Cộng dồn các quý giá vào trong 1 biến
Stored procedure sau đây gồm một tyêu thích số và trả về danh sách các thành phầm dưới dạng chuỗi:
CREATE PROC uspGetProductList(
product_list cùng với giao diện varchar cùng gán quý hiếm của nó thành trống.Thđọng ba, Cửa Hàng chúng tôi vẫn áp dụng câu lệnh PRINT để in ấn ra list tên thành phầm.
Câu lệnh dưới đây thực thi stored procedure uspGetProductList:
EXEC uspGetProductList 2018Bức Ảnh dưới đây cho biết thêm 1 phần kết quả đầu ra:

Trong phần này, các bạn đã mày mò về thay đổi vào Squốc lộ Server bao hàm knhì báo trở thành, gán cực hiếm cho đổi mới cùng gán các trường của bản ghi cho những biến chuyển.
Tsay mê số OUTPUT của stored procedure trong Squốc lộ Server
Trong phần này, các bạn sẽ mày mò giải pháp sử dụng các ttê mê số OUTPUT (tham số đầu ra) vào Squốc lộ Server để trả tài liệu trở về công tác hotline.
Tạo tsi mê số OUTPUT cho stored procedure
Để sinh sản một ttê mê số OUTPUT mang lại stored procedure, bạn áp dụng cú pháp sau:
parameter_name data_type OUTPUTMột stored procedure có thể có không ít tmê man số OUTPUT. Hình như, các tđê mê số OUTPUT có thể sinh sống bất kỳ hình dạng tài liệu hợp lệ làm sao như: số nguyên, ngày tháng cùng chuỗi.
Ví dụ: stored procedure sau đây kiếm tìm kiếm các sản phẩm theo năm Model với trả về số số lượng hàng hóa thông qua tmê man số OUTPUT là
product_count INT OUTPUT) ASBEGIN SELECT product_name, list_price FROM production.products WHERE model_year =
product_count INT OUTPUTThđọng nhị, sau câu lệnh SELECT, chúng ta vẫn gán con số bạn dạng ghi được trả về vì truy vấn (
ROWCOUNT là 1 vươn lên là hệ thống trả về con số phiên bản ghi được đọc vì chưng câu lệnh phía trước.
khi bạn 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à lưu lại trong hạng mục cửa hàng tài liệu.
Nếu phần lớn trang bị gần như ổn, Squốc lộ Server vẫn đưa ra thông báo sau:
Commands completed successfully.
Thực thi stored procedure cùng với những tđắm đuối số OUTPUT
Để thực hiện stored procedure với những tđắm say số OUTPUT, bạn làm theo công việc sau:Trước tiên, knhị báo các vươn lên là nhằm lưu trữ các quý hiếm được trả về bởi vì những tsi mê số OUTPUT.Thđọng nhì, sử dụng những biến chuyển này khi Điện thoại tư vấn tiến hành stored procedure.lấy ví dụ, câu lệnh sau tiến hành stored procedure uspFindProductByModel:
DECLARE
count AS "Number of products found";Bức Ảnh tiếp sau đây cho thấy thêm đầu ra:

Trong ví dụ này:
Trước tiên, chúng tôi khai báo đổi thay
count INT;Sau kia, tiến hành stored procedure uspFindProductByModel và truyền những tmê say số:
EXEC uspFindProductByModel
product_count.
Quý Khách cũng hoàn toàn có thể xúc tiến stored procedure uspFindProductByModel nlắp gọn như sau:
EXEC uspFindProductByModel 2018,
count AS "Number of products found";Trong phần này, chúng ta đang học tập cách áp dụng tyêu thích số OUTPUT nhằm truyền dữ liệu trường đoản cú stored procedure trở về công tác Điện thoại tư vấn.
Câu lệnh BEGIN ... END trong Squốc lộ Server
Trong phần này, các bạn sẽ mày mò biện pháp sử dụng câu lệnh BEGIN...END trong SQL Server nhằm quấn một tập đúng theo những câu lệnh Transact-Squốc lộ thành một khối câu lệnh.
Tổng quan liêu về câu lệnh BEGIN...END vào Squốc lộ Server
Câulệnh BEGIN...END vào Squốc lộ Server được thực hiện nhằm quan niệm một kăn năn câu lệnh. Một kăn năn câu lệnh gồm một tập phù hợp những câu lệnh Squốc lộ thực hiện cùng mọi người trong nhà.
Nói bí quyết không giống, trường hợp coi mỗi câu lệnh là một trong câu văn thì câu lệnh BEGIN...END có thể chấp nhận được chúng ta có mang một đoạn văn.
Sau phía trên minch họa cú pháp của câu lệnh BEGIN...END:
BEGIN sql_statement ENDTrong cú pháp này, các bạn đặt một tập hợp các câu lệnh SQL giữa các từ khóa BEGIN cùng 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:

Để xem các thông báo được tạo thành vì chưng câu lệnh PRINT, trong Squốc lộ Server Management Studio, bạn cần 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, Shop chúng tôi gồm một kân hận lệnh bắt đầu bằng từ bỏ khóa BEGIN và kết thúc bởi từ bỏ khóa END.Lưu ý:ROWCOUNT là 1 biến hóa khối hệ thống trả về số lượng bạn dạng ghi bị tác động vị câu lệnh phía trước.
Câu lệnh BEGIN... END giới hạn một kân hận lô ghích của những câu lệnh SQL. Chúng tôi hay sử dụng câu lệnh BEGIN...END sinh sống đầu cùng cuối của một stored procedure cùng function.
Câu lệnh BEGIN...END cũng khá được thực hiện cho những câu lệnh IF ELSE, câu lệnh WHILE, v.v., để phủ bọc những 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 có thể lồng nhau vào Squốc lộ Server. Nó dễ dàng và đơn giản Có nghĩa là chúng ta cũng có thể đặt một câu lệnh BEGIN...END vào một câu lệnhBEGIN... END không giống .
Hãy xem xét ví dụ sau:
BEGIN DECLARE
name END ELSE BEGIN PRINT "No product found"; END;ENDTrong ví dụ này, Shop chúng tôi đang thực hiện câu lệnh BEGIN...END nhằm quấn cục bộ kăn năn câu lệnh. Bên vào kăn năn 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, chúng ta sẽ tò mò về câu lệnh BEGIN...END trong Squốc lộ Server nhằm quấn các câu lệnh Transact-Squốc lộ thành các kăn năn lệnh.
CURSOR trong Squốc lộ Server
Trong phần này, bạn sẽ tò mò bí quyết thực hiện CURSOR vào Squốc lộ Server để cách xử lý một tập kết quả, những lần một bạn dạng ghi.
SQL Server chuyển động dựa trên tập hợp, ví dụ, câu lệnh SELECT trả về một tập vừa lòng các phiên bản ghi được call là tập công dụng. Tuy nhiên, nhiều khi, chúng ta cũng có thể ý muốn cách xử lý một tập dữ liệu theo từng bản ghi. Đây là cơ hội CURSOR được áp dụng.
CURSOR là gì?
CURSOR (bé trỏ) là một trong đối tượng người dùng được cho phép chăm sóc qua những bản ghi của tập hiệu quả. Nó chất nhận được các bạn cách xử lý từng bạn dạng ghi độc thân được trả về bởi vì một truy vấn.
Vòng đời của CURSOR vào Squốc lộ Server
Đây là công việc nhằm tạo ra với sử dụng một CURSOR:

Đầu tiên, knhị báo một CURSOR.
DECLARE cursor_name CURSOR FOR select_statement;Để knhì báo một CURSOR, các bạn hướng đẫn tên của nó sau từ khóa DECLARE với thứ hạng tài liệu là CURSOR với hỗ trợ một câu lệnh SELECT quan niệm tập công dụng mang đến CURSOR.
Tiếp theo, mlàm việc CURSOR để triển khai câu lệnh SELECT:
OPEN cursor_name;Sau đó, săn sóc từng phiên bản ghi vào CURSOR và gửi vào một hoặc nhiều biến:
FETCH NEXT FROM cursor INTO variable_list;SQL Server cung cấp biến đổi khối hệ thống
FETCHSTATUS trả về 0, có nghĩa là câu lệnh FETCH vẫn thành công. Bạn có thể thực hiện câu lệnh WHILE để ưng chuẩn tất cả những phiên bản ghi từ CURSOR nlỗi trong khúc mã sau:
WHILE
FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursor_name; END;Sau lúc vẫn thông qua qua toàn bộ bạn dạng ghi trong CURSOR, họ vẫn đóng CURSOR bởi lệnh sau:
CLOSE cursor_name;Cuối cùng, phân bổ CURSOR để giải pđợi nó:
DEALLOCATE cursor_name;
lấy ví dụ như CURSOR trong Squốc lộ Server
Chúng tôi sẽ thực hiện bảng products trong đại lý tài liệu mẫu BikeStores nhằm minh họa mang lại CURSOR vào Squốc lộ Server:
Trước tiên, knhị báo nhì biến để lưu trữ thương hiệu thành phầm và giá niêm yết cùng một CURSOR nhằm tàng trữ hiệu quả của truy hỏi vấn mang tên thành phầm và niêm yết từ bảng production.products:
DECLARE
list_price DECIMAL;DECLARE cursor_hàng hóa CURSORFOR SELECT product_name, list_price FROM production.products;Tiếp theo, mngơi nghỉ CURSOR:
OPEN cursor_product;Sau kia, cẩn thận từng bạn dạng ghi trường đoản cú CURSOR và in ra thương hiệu thành phầm với giá niêm yết:
FETCH NEXT FROM cursor_hàng hóa INTO
list_price; END;Sau đó, đóng góp CURSOR:
CLOSE cursor_product;Cuối thuộc, phân bổ CURSOR để giải pđợi 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_product INTO
list_price; END;CLOSE cursor_product;DEALLOCATE cursor_product;Đây là đầu ra một phần:

Trong thực tiễn, bạn sẽ thảng hoặc lúc sử dụng CURSOR để xử lý tập công dụng do nó cực kỳ đủng đỉnh.
Trong phần này, các bạn vẫn học tập phương pháp áp dụng CURSOR trong Squốc lộ Server để giải pháp xử lý một tập tác dụng, những lần một phiên bản ghi.