Stored procedure vào SQL Server được sử dụng nhằm team một hoặc nhiều câu lệnh Transact-Squốc lộ thành các đơn vị súc tích. Stored procedure được lưu trữ dưới dạng các đối tượng người sử dụng chọn cái tên trong sever các đại lý tài liệu SQL Server.Bạn sẽ xem: Stored procedure sql là gì

Lúc bạn Điện thoại tư vấn một stored procedure lần thứ nhất, SQL Server sẽ khởi tạo một chiến lược tiến hành với lưu trữ nó trong bộ đệm. Trong những lần thực hiện tiếp sau của stored procedure, SQL Server thực hiện lại planer để stored procedure hoàn toàn có thể triển khai siêu nkhô cứng cùng với hiệu suất tin cậy.

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

Trong gợi ý này, bạn sẽ khám phá phần lớn máy bạn cần biết về stored procedure vào Squốc lộ Server và chỉ còn cho chính mình biện pháp xây dừng các stored procedure linc hoạt để tối ưu hóa truy cập cửa hàng dữ liệu.

Hướng dẫn cơ bạn dạng về stored procedure trong Squốc lộ Server

Trong phần này, bạn sẽ tò mò phương pháp làm chủ các stored procedure vào SQL Server bao hàm chế tác, thực hiện, sửa đổi và xóa những stored procedure.

Tạo stored procedure đơn giản vào Squốc lộ Server

Câu lệnh SELECT sau trả về list những sản phẩm từ bảng products trong đại lý dữ liệu mẫu mã BikeStores:

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

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


*

Nếu những trang bị đầy đủ chính xác, thì các bạn sẽ thấy thông báo sau:

Commands completed successfully.Nó tức là stored procedure đã làm được biên dịch và lưu trữ thành công xuất sắc vào cửa hàng dữ liệu.

quý khách rất có thể tra cứu thấy stored procedure vào Object Explorer, vào Programmability > Stored Procedures như vào hình sau:


*

thường thì, bạn cần nhấp vào nút ít Refresh nhằm update bằng tay các đối tượng cửa hàng dữ liệu trong Object Explorer.

Thực thi stored procedure vào SQL Server

Để tiến hành stored procedure, chúng ta sử dụng câu lệnh EXECUTE hoặc EXEC theo sau là tên gọi của stored procedure nlỗi sau:

EXECUTE sp_name;Hoặc là

EXEC sp_name;Với sp_name là tên của stored procedure mà bạn có nhu cầu thực hiện.

ví dụ như, để xúc tiến stored procedure uspProductList, chúng ta áp dụng câu lệnh sau:

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


*

Sửa thay đổi stored procedure trong SQL Server

Để sửa thay đổi stored procedure trong Squốc lộ Server, các bạn áp dụng câu lệnh ALTER PROCEDURE.

Thứ nhất, stored procedure để xem văn bản của chính nó bằng phương pháp click chuột buộc phải vào thương hiệu stored procedure với lựa chọn menu Modify:


*

Thứ đọng hai, chuyển đổi câu chữ của stored procedure mà vào ví dụ này là sắp xếp những thành phầm theo niêm yết nỗ lực vì chưng 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ứ đọng cha, nhấp vào nút Execute, SQL Server sửa đổi stored procedure với trả về thông báo sau:

Commands completed successfully.Bây tiếng, nếu như bạn triển khai lại stored procedure, bạn sẽ thấy các biến đổi đang có hiệu lực:

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


*

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

Để xóa stored procedure trong SQL Server, chúng ta áp dụng câu lệnh DROPhường PROCEDURE hoặc DROP.. PROC như sau:

DROP.. PROCEDURE sp_name;Hoặc là

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

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

DROP.. PROCEDURE uspProductList;Trong phần này, bạn sẽ học bí quyết làm chủ những stored procedure vào Squốc lộ Server bao hàm tạo, xúc tiến, sửa thay đổi và xóa những stored procedure.

Stored procedure gồm tham số vào SQL Server

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

Tạo stored procedure gồm một tđê mê số trong SQL Server

Truy vấn tiếp sau đây trả về danh sách sản phẩm tự bảng products trong đại lý tài liệu mẫu mã BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY list_price;Quý Khách hoàn toàn có thể chế tạo stored procedure bảo phủ truy vấn vấn này bằng phương pháp thực hiện 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 chúng ta có thể thêm một tsay mê số vào stored procedure nhằm tìm kiếm các sản phẩm có giá niêm yết to 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:

Thứ nhất, Shop chúng tôi đang thêm một tham mê số có tên là min_list_price. Tmê mẩn số bắt buộc được bao quanh vày cặp vệt ngoặc tròn.

Thực thi stored procedure bao gồm một tđê mê số vào SQL Server

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

EXEC uspFindProducts 100;Sau phía trên cho biết đầu ra:


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

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

EXEC uspFindProducts 200;Sau trên đây cho thấy đầu ra:


Tạo stored procedure có nhiều ttê mê số vào Squốc lộ Server

Stored procedure hoàn toàn có thể tất cả một hoặc nhiều tsay đắm số. Các tsi số được phân bóc tách bằng dấu phẩy.

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

EXEC uspFindProducts 900, 1000;Sau phía trên cho biết thêm đầu ra:


Sử dụng thương hiệu của tđê mê số Lúc triển khai stored procedure trong SQL Server

Trong ngôi trường đúng theo những stored procedure có rất nhiều tmê say số, vẫn xuất sắc hơn với cụ thể rộng Lúc xúc tiến cácstored procedure bằng phương pháp áp dụng tên của các tmê mẩn số.

ví dụ như, câu lệnh sau tiến hành stored procedure uspFindProducts bằng cách sử dụng thương hiệu của những tham số max_list_price = 1000;Kết trái của stored procedure là tương đồng tuy vậy câu lệnh vẫn rõ ràng rộng.

Tđam mê số kiểu dáng chuỗi cam kết từ mang đến stored procedure vào SQL Server

Câu lệnh sau đây thêm tđam 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, Cửa Hàng chúng tôi đã thêm điều kiện sau:

product_name LIKE "%" + name + "%"Bằng biện 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 giá niêm yết buổi tối tđọc cùng tối nhiều và thương hiệu sản phẩm cũng đựng một đoạn văn bản nhưng mà các bạn truyền vào.

lúc stored procedure được biến hóa thành công, bạn có thể thực thi nó nlỗi sau:

EXEC uspFindProducts name = "Trek";Trong câu lệnh này, Cửa Hàng chúng tôi sẽ thực hiện stored procedure uspFindProducts để tìm kiếm sản phẩm có giá niêm yết nằm trong vòng 900 với 1.000 với thương hiệu của bọn chúng có chứa tự Trek.

Bức Ảnh dưới đây cho thấy thêm đầu ra:


Tạo những ttê mê số tùy chọn mang lại stored procedure trong SQL Server

lúc chúng ta thực thì stored procedure uspFindProducts, bạn bắt buộc truyền cả ba đối số tương xứng cùng với ba tyêu thích số của stored procedure.

SQL Server được cho phép bạn chỉ định và hướng dẫn những quý hiếm mang định cho các tđắm đuối số nhằm khi bạn xúc tiến stored procedure, chúng ta cũng có thể bỏ qua mất những tđắm đuối số có giá trị khoá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, chúng tôi đã gán 0 làm cho quý giá khoác định mang lại tsi số max_list_price.

lúc stored procedure được biên dịch, bạn cũng có thể tiến hành nó nhưng mà ko nên truyền những đối số mang đến tmê mệt số name = "Trek";Đây là kết quả:


Trong ngôi trường vừa lòng này, stored procedure sẽ thực hiện giá trị 0 đến tsay mê số max_list_price được Điện thoại tư vấn là tsay đắm số tùy chọn (optional parameters).

Tất nhiên, chúng ta có thể truyền các đối số cho các tđắm say số tùy lựa chọn. Ví dụ: câu lệnh sau trả về tất cả các sản phẩm có mức giá niêm yết to hơn hoặc bởi 6.000 cùng tên cất từ Trek:

EXEC uspFindProducts name = "Trek";

Sử dụng NULL có tác dụng quý giá mặc định mang lại tsay mê số của stored procedure trong Squốc lộ Server

Trong stored procedure uspFindProducts, chúng tôi đang sử dụng 999.999 làm cho giá niêm yết tối đa mang định. Điều này sẽ không ổn định do trong tương lai chúng ta có thể bao hàm sản phẩm có mức giá niêm yết béo không dừng lại ở đó.

Một nghệ thuật điển hình nhằm rời điều đó là áp dụng NULL làm cho cực hiếm mặc định cho những tyêu thích 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 để giải pháp xử lý quý giá NULL cho tsi số max_list_price IS NULL OR list_price Tips: đây là một biểu thức ĐK rất thú vị mà lại bạn sẽ phát hiện rất nhiều trong các dự án công trình thực tế lúc đi làm.Câu lệnh tiếp sau đây triển khai stored procedure uspFindProducts nhằm tìm sản phẩm có mức giá niêm yết lớn hơn hoặc bằng 500 và thương hiệu tất cả chứa tự Haro.

EXEC uspFindProducts name = "Haro";
Trong phần này, chúng ta vẫn học tập bí quyết sản xuất và triển khai stored procedure với 1 hoặc các tmê mệt số. Bạn đã và đang học tập biện pháp sản xuất các tham mê số tùy chọn với sử dụng NULL có tác dụng quý giá khoác định cho các tham số.

Biến trong Squốc lộ Server

Trong phần này, bạn sẽ khám phá về trở nên trong Squốc lộ Server bao gồm knhị báo biến hóa, gán giá trị đến biến đổi và gán các ngôi trường giá trị của bạn dạng ghi mang lại biến.

Biến là gì?

Biến là 1 đối tượng cất một quý hiếm độc nhất của một giao diện dữ liệu rõ ràng, ví dụ: integer, decimal, date hoặc chuỗi ký trường đoản cú, v.v.

Chúng ta thường xuyên sử dụng trở nên trong số trường vừa lòng sau:

Là một bộ đếm vòng lặp nhằm đếm mốc giới hạn vòng lặp được tiến hành.Để giữ một giá trị được đánh giá bằng câu lệnh vòng lặp, chẳng hạn như lệnh WHILE.Để tàng trữ quý hiếm được trả về vày một stored procedure hoặc một hàm.

Xem thêm: Echipkool - Download Proteus 8

Khai báo biến

Theo mang định, khi một biến được khai báo, quý hiếm của chính nó được đặt thành NULL.

Giữa tên biến chuyển cùng các loại tài liệu, bạn cũng có thể thực hiện AStự khóa tùy chọn nhỏng sau:

DECLARE product_name VARCHAR(MAX);

Gán quý hiếm đến biến

Để gán quý hiếm cho một biến hóa, bạn sử dụng câu lệnh SET. Ví dụ: câu lệnh sau gán 2018 cho vươn lên là model_year trong mệnh đề WHERE để tìm những thành 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ồ, bạn cũng có thể đặt phần lớn máy lại với nhau cùng thực thi khối mã sau để có danh sách 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 ý: để thực hiện mã, chúng ta bấm chuột nút ít Exedễ thương nhỏng vào hình sau, hoặc thừa nhận phím F5:
Tấm hình sau đây cho biết kết quả đầu ra:


Lưu trữ tác dụng tróc nã vấn vào biến

Các bước tiếp sau đây biểu lộ phương pháp tàng trữ hiệu quả truy tìm vấn vào một biến:

Thứ nhất, khai báo một biến có tên product_count AS VARCHAR(MAX));Kết quả như sau:

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

SET NOCOUNT ON;

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

Các bước sau minh họa phương pháp knhị báo hai thay đổi, gán một bản ghi cho chúng và xuất ngôn từ của những biến:

Trước tiên, knhì báo những đổi thay để lưu trữ tên sản phẩm với 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 các 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 trong những biến

Stored procedure sau đây bao gồm một tsi số với trả về danh sách các sản phẩm dưới dạng chuỗi:

CREATE PROC uspGetProductList( product_các mục cùng với loại varchar cùng gán giá trị của nó thành trống.Thứ bố, Shop chúng tôi đang thực hiện câu lệnh PRINT để in ra danh sách tên thành phầm.Câu lệnh tiếp sau đây tiến hành stored procedure uspGetProductList:

EXEC uspGetProductList 2018Tấm hình tiếp sau đây cho thấy thêm một trong những phần kết quả đầu ra:


Trong phần này, các bạn đã khám phá về đổi thay trong Squốc lộ Server bao gồm knhị báo biến, gán quý hiếm mang lại biến đổi và gán những ngôi trường của phiên bản ghi cho các biến chuyển.

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

Trong phần này, bạn sẽ mày mò giải pháp thực hiện những tđắm say số OUTPUT (tmê mẩn số đầu ra) vào Squốc lộ Server nhằm trả tài liệu trở về công tác hotline.

Tạo tsi mê số OUTPUT cho stored procedure

Để chế tạo ra một tsi mê số OUTPUT mang đến stored procedure, bạn sử dụng cú pháp sau:

parameter_name data_type OUTPUTMột stored procedure có thể có không ít tmê man số OUTPUT. Dường như, những tđê mê số OUTPUT hoàn toàn có thể nghỉ ngơi bất kỳ phong cách dữ liệu vừa lòng lệ nào như: số nguyên ổn, ngày tháng và chuỗi.

Ví dụ: stored procedure sau đây tra cứu tìm những sản phẩm theo năm Mã Sản Phẩm với trả về số số lượng hàng hóa thông qua tđắm đuối 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 đang gán con số bản ghi được trả về vì chưng truy vấn (ROWCOUNT là 1 trong những đổi mới hệ thống trả về số lượng bạn dạng ghi được gọi bởi câu lệnh vùng phía đằng trước.Khi chúng ta triển khai câu lệnh CREATE PROCEDURE bên trên, stored procedure uspFindProductByModel sẽ được biên dịch và giữ trong danh mục các đại lý tài liệu.

Nếu đa số thiết bị hầu hết ổn, SQL Server vẫn đưa ra thông báo sau:

Commands completed successfully.

Thực thi stored procedure cùng với các tmê mệt số OUTPUT

Để tiến hành stored procedure với những tđam mê số OUTPUT, các bạn tuân theo các bước sau:

Trước hết, knhì báo những phát triển thành nhằm lưu trữ các cực hiếm được trả về vị các tsay mê số OUTPUT.Thđọng hai, sử dụng các biến này Khi Call thực hiện stored procedure.

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

DECLARE count AS "Number of products found";Hình ảnh tiếp sau đây cho thấy đầu ra:


Trong ví dụ này:

trước hết, Shop chúng tôi khai báo biến đổi count INT;Sau đó, xúc tiến stored procedure uspFindProductByModel với truyền các tđắm say số:

EXEC uspFindProductByModel product_count.

Quý Khách cũng rất có thể triển khai stored procedure uspFindProductByModel ngắn thêm gọn gàng nhỏng sau:

EXEC uspFindProductByModel 2018, count AS "Number of products found";Trong phần này, chúng ta đã học phương pháp thực hiện ttê mê số OUTPUT nhằm truyền tài liệu từ bỏ stored procedure quay lại lịch trình Hotline.

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

Trong phần này, bạn sẽ mày mò giải pháp thực hiện câu lệnh BEGIN...END trong Squốc lộ Server để quấn một tập thích hợp các câu lệnh Transact-SQL thành một kăn năn câu lệnh.

Tổng quan lại về câu lệnh BEGIN...END vào Squốc lộ Server

Câulệnh BEGIN...END vào SQL Server được sử dụng nhằm quan niệm một khối hận câu lệnh. Một kăn năn câu lệnh gồm một tập hòa hợp những câu lệnh Squốc lộ triển khai cùng cả nhà.

Nói cách không giống, nếu coi mỗi câu lệnh là một trong câu văn thì câu lệnh BEGIN...END được cho phép các bạn khái niệm một quãng văn.

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

BEGIN sql_statement ENDTrong cú pháp này, bạn đặt một tập thích hợp những câu lệnh SQL giữa những 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:


Để coi các thông tin được sản xuất 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 mang định, tab Results được nhảy cùng tab Messages bị ẩn.

Trong ví dụ này:

trước hết, Cửa Hàng chúng tôi có một kân hận lệnh ban đầu bởi từ bỏ khóa BEGIN với kết thúc bằng tự khóa END.Lưu ý: ROWCOUNT là một biến khối hệ thống trả về con số bản ghi bị tác động vị câu lệnh phía đằng trước.

Câu lệnh BEGIN... END giới hạn một kăn năn súc tích của các câu lệnh Squốc lộ. Chúng tôi thường thực hiện câu lệnh BEGIN...END sống đầu cùng cuối của một stored procedure với function.

Câu lệnh BEGIN...END cũng được sử dụng cho những câu lệnh IF ELSE, câu lệnh WHILE, v.v., để phủ bọc nhiều câu lệnh.

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

Khối hận câu lệnh BEGIN...END có thể lồng nhau vào SQL Server. Nó dễ dàng và đơn giản tức là bạn cũng 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ông ty chúng tôi đã áp dụng câu lệnh BEGIN...END nhằm quấn toàn bộ khối hận câu lệnh. Bên vào kân hận này, Shop 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, các bạn đã khám phá về câu lệnh BEGIN...END trong SQL Server nhằm bọc những 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, các bạn sẽ mày mò cách áp dụng CURSOR trong SQL Server để cách xử lý một tập tác dụng, mỗi lần một phiên bản ghi.

SQL Server vận động dựa vào tập hòa hợp, ví dụ, câu lệnh SELECT trả về một tập thích hợp các bản ghi được điện thoại tư vấn là tập hiệu quả. Tuy nhiên, đôi khi, bạn có thể mong mỏi cách xử lý một tập dữ liệu theo từng phiên bản ghi. Đây là dịp CURSOR được thực hiện.

CURSOR là gì?

CURSOR (nhỏ trỏ) là một trong những đối tượng người sử dụng có thể chấp nhận được coi xét qua các bản ghi của tập tác dụng. Nó được cho phép bạn xử lý từng bản ghi cô quạnh được trả về bởi vì một truy hỏi vấn.

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

Đây là công việc nhằm sản xuất cùng thực hiện một CURSOR:


Trước 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 thương hiệu của nó sau từ khóa DECLARE với dạng hình tài liệu là CURSOR cùng cung cấp một câu lệnh SELECT khái niệm tập hiệu quả mang đến CURSOR.

Tiếp theo, msống CURSOR để thực thi câu lệnh SELECT:

OPEN cursor_name;Sau kia, chăm nom từng phiên bản ghi vào CURSOR và đưa vào một trong những hoặc nhiều biến:

FETCH NEXT FROM cursor INTO variable_list;Squốc lộ Server cung cấp biến chuyển hệ thống FETCHSTATUS trả về 0, Tức là câu lệnh FETCH đã thành công. Quý khách hàng hoàn toàn có thể thực hiện câu lệnh WHILE để chăm bẵm tất cả những bạn dạng ghi từ bỏ CURSOR như trong khúc mã sau:

WHILE FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursor_name; END;Sau Lúc đang phê chuẩn qua tất cả bạn dạng ghi vào CURSOR, bọn họ vẫn đóng góp CURSOR bởi lệnh sau:

CLOSE cursor_name;Cuối cùng, phân bổ CURSOR nhằm giải pchờ nó:

DEALLOCATE cursor_name;

lấy ví dụ như CURSOR vào SQL Server

Chúng tôi vẫn thực hiện bảng products trong đại lý dữ liệu mẫu mã BikeStores để minh họa mang lại CURSOR trong Squốc lộ Server:


Thứ nhất, khai báo nhì thay đổi để lưu trữ tên thành phầm và niêm yết cùng một CURSOR để lưu trữ kết quả của tầm nã vấn rước tên sản phẩm và giá niêm yết từ bỏ bảng production.products:

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

OPEN cursor_product;Sau đó, chu đáo từng bản ghi từ bỏ CURSOR và in ra tên thành phầm với giá niêm yết:

FETCH NEXT FROM cursor_product INTO list_price; END;Sau kia, đóng góp CURSOR:

CLOSE cursor_product;Cuối thuộc, phân chia CURSOR nhằm giải pngó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_sản phẩm INTO list_price; END;CLOSE cursor_product;DEALLOCATE cursor_product;Đây là Áp sạc ra một phần:


Trong thực tiễn, bạn sẽ thi thoảng lúc áp dụng CURSOR nhằm giải pháp xử lý tập hiệu quả vì nó khôn cùng lờ lững.

Xem thêm: Pbl Là Gì ? Những Đặc Điểm Của Pbl Những Vấn Đề Liên Quan Đến Pbl

Trong phần này, bạn đang học bí quyết thực hiện CURSOR trong Squốc lộ Server để cách xử trí một tập công dụng, các lần một phiên bản 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 *