HomeTHỦ THUẬT - PHẦN MỀMThủ tục trong sql là gì

Thủ tục trong sql là gì

05:52, 16/03/2021

Stored procedure trong SQL Server được sử dụng nhằm đội một hoặc nhiều câu lệnh Transact-Squốc lộ thành các đơn vị chức năng xúc tích. Stored procedure được tàng trữ dưới dạng những đối tượng người sử dụng được đặt tên vào máy chủ các đại lý dữ liệu Squốc lộ Server.

Bạn đang xem: Thủ tục trong sql là gì

Lúc chúng ta Hotline một stored procedure lần đầu tiên, Squốc lộ Server sẽ tạo một kế hoạch triển khai với tàng trữ nó trong cỗ đệm. Trong những lần triển khai tiếp sau của stored procedure, Squốc lộ Server thực hiện lại chiến lược nhằm stored procedure hoàn toàn có thể tiến hành khôn xiết nkhô hanh với năng suất an toàn và đáng tin cậy.

Trong lý giải này, các bạn sẽ tò mò phần đa sản phẩm chúng ta nên biết về stored procedure trong Squốc lộ Server còn chỉ cho chính mình cách kiến tạo các stored procedure linch hoạt để buổi tối ưu hóa truy cập cửa hàng tài liệu.

Hướng dẫn cơ phiên bản về stored procedure vào Squốc lộ Server

Trong phần này, các bạn sẽ tò mò bí quyết quản lý những stored procedure vào SQL Server bao gồm chế tạo, tiến hành, sửa thay đổi và 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 những thành phầm từ bảng products vào cơ sở tài liệu mẫu BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY product_name;Để chế tạo stored procedure bao quanh truy hỏi vấn này, chúng ta thực hiện 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 gọi của stored procedure.Từ khóa AS chia cách title với phần thân của stored procedure.Nếu stored procedure tất cả một câu lệnh, các trường đoản cú khóa BEGIN cùng END bảo phủ câu lệnh là tùy lựa chọn. Tuy nhiên, đó là 1 thực hành thực tế tốt tạo nên mã cụ thể hơn.Lưu ý: xung quanh trường đoản cú khóa CREATE PROCEDURE, bạn cũng có thể thực hiện trường đoản cú 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, bạn thực hiện nó nlỗi một câu lệnh SQL thông thường vào Squốc lộ Server Management Studio nhỏng trong hình sau:

*

Nếu hầu hết lắp thêm mọi đúng mự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 cùng lưu trữ thành công vào đại lý tài liệu.

Bạn rất có thể kiếm tìm thấy stored procedure trong Object Explorer, trong Programmability > Stored Procedures nhỏng trong hình sau:

*

Đôi khi, bạn cần nhấp vào nút ít Refresh để cập nhật thủ công những đối tượng người sử dụng cửa hàng tài liệu vào Object Explorer.

Thực thi stored procedure vào Squốc lộ Server

Để xúc tiến 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 mà lại bạn có nhu cầu tiến hành.

lấy ví dụ như, nhằm thực hiện stored procedure uspProductList, chúng ta thực hiện 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 đổi stored procedure trong SQL Server, chúng ta áp dụng câu lệnh ALTER PROCEDURE.

trước hết, stored procedure giúp xem văn bản của chính nó bằng cách bấm chuột cần vào tên stored procedure và lựa chọn thực đơn Modify:

*

Thứ đọng nhì, chuyển đổi văn bản của stored procedure nhưng trong ví dụ này là bố trí những sản phẩm theo giá niêm yết vắt bởi 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 ba, nhấp vào nút Execute, SQL Server sửa thay đổi stored procedure cùng trả về thông tin sau:

Commands completed successfully.Bây giờ, nếu như bạn xúc tiến lại stored procedure, bạn sẽ thấy những chuyển đổi đã gồm hiệu lực:

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

*

Xóa stored procedure vào SQL Server

Để xóa stored procedure trong SQL Server, bạn thực hiện câu lệnh DROPhường PROCEDURE hoặc DROPhường PROC nlỗi 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 nhưng mà bạn có nhu cầu xóa.

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

DROPhường. PROCEDURE uspProductList;Trong phần này, chúng ta đang học tập cách thống trị những stored procedure trong SQL Server bao gồm tạo, triển khai, sửa đổi với xóa những stored procedure.

Stored procedure tất cả tham số trong SQL Server

Trong phần này, 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 những tsi số mang lại nó. Kết quả của stored procedure đang biến đổi dựa vào cực hiếm của những tđắm say số.

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

Truy vấn dưới đây trả về list thành phầm tự bảng products vào cơ sở tài liệu mẫu mã BikeStores:

SELECT product_name, list_priceFROM production.productsORDER BY list_price;quý khách hàng có thể tạo nên stored procedure bao bọc truy vấn này bằng phương pháp áp dụng câu lệnh CREATE PROCEDURE nhỏng 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 tđắm đuối số vào stored procedure nhằm tìm kiếm các sản phẩ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:

trước hết, công ty chúng tôi đã thêm một tyêu thích số có tên là
min_list_price. Tđắm đuối số buộc phải được phủ quanh bởi vì cặp lốt ngoặc tròn.

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

Để triển khai stored procedure uspFindProducts, bạn truyền một đối số đến nó như sau:

EXEC uspFindProducts 100;Sau trên đây cho biết thêm đầu ra:

*

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

Nếu chúng ta biến hóa đối số thành 200, các bạn sẽ nhận được một tập hiệu quả khác:

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

*

Tạo stored procedure có rất nhiều tyêu thích số trong Squốc lộ Server

Stored procedure có thể tất cả một hoặc nhiều tđê mê số. Các tsay đắm số được phân bóc tách bởi lốt phẩy.

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

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

*

Sử dụng tên của tyêu thích số Khi thực hiện stored procedure trong Squốc lộ Server

Trong trường phù hợp những stored procedure có khá nhiều tsi số, sẽ tốt hơn với cụ thể hơn lúc thực hiện cácstored procedure bằng phương pháp áp dụng thương hiệu của những tmê man số.

Ví dụ, câu lệnh sau thực thi stored procedure uspFindProducts bằng phương pháp áp dụng thương hiệu của các tsay mê 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ố hình dáng chuỗi ký từ đến stored procedure vào Squốc lộ Server

Câu lệnh dưới đây thêm ttê 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ông ty chúng tôi đã thêm ĐK sau:

product_name LIKE "%" +
name + "%"Bằng bí quyết này, stored procedure trả về các sản phẩm có mức giá niêm yết bên trong phạm vi giá niêm yết tối thiểu với buổi tối nhiều cùng thương hiệu thành phầm cũng đựng một đoạn văn uống bạn dạng cơ mà chúng ta truyền vào.

Lúc stored procedure được đổi khác thành công xuất sắc, bạn có thể triển khai nó nhỏng sau:

EXEC uspFindProducts
name = "Trek";Trong câu lệnh này, Shop chúng tôi sẽ sử dụng stored procedure uspFindProducts nhằm search thành phầm có mức giá niêm yết nằm trong khoảng 900 và 1.000 cùng tên của bọn chúng có cất từ Trek.

Hình ảnh dưới đây cho thấy đầu ra:

*

Tạo các tđê mê số tùy lựa chọn đến stored procedure vào Squốc lộ Server

Khi bạn thực thì stored procedure uspFindProducts, bạn bắt buộc truyền cả cha đối số khớp ứng cùng với bố tmê man số của stored procedure.

SQL Server có thể chấp nhận được các bạn chỉ định và hướng dẫn những giá trị khoác định cho các tham số để khi chúng ta thực hiện stored procedure, bạn có thể bỏ qua mất các tyêu thích 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, Cửa Hàng chúng tôi đang gán 0 làm cho quý giá khoác định mang lại tđam mê số
max_list_price.

khi stored procedure được biên dịch, chúng ta có thể xúc tiến nó nhưng mà ko bắt buộc truyền những đối số đến tmê man số
name = "Trek";Đây là kết quả:

*

Trong trường thích hợp này, stored procedure sẽ thực hiện quý hiếm 0 mang đến tsay đắm số
max_list_price được gọi là tđắm say số tùy lựa chọn (optional parameters).

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

EXEC uspFindProducts
name = "Trek";

*

Sử dụng NULL làm cực hiếm khoác định cho tsi mê số của stored procedure trong SQL Server

Trong stored procedure uspFindProducts, Shop chúng tôi đang thực hiện 999.999 làm cho giá niêm yết tối nhiều mặc định. Điều này sẽ không ổn vì chưng trong tương lai chúng ta có thể gồm có sản phẩm có giá niêm yết Khủng không những thế.

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

EXEC uspFindProducts
name = "Haro";

*
Trong phần này, chúng ta đã học phương pháp sinh sản với thực hiện stored procedure với 1 hoặc những tsi mê số. Quý khách hàng cũng đã học tập giải pháp chế tác những tmê man số tùy chọn và thực hiện NULL có tác dụng quý hiếm khoác định cho những tham số.

Biến vào Squốc lộ Server

Trong phần này, bạn sẽ khám phá về đổi mới vào Squốc lộ Server bao gồm khai báo phát triển thành, gán giá trị cho biến chuyển và gán các trường cực hiếm của bản ghi đến trở nên.

Biến là gì?

Biến là một trong đối tượng cất một quý hiếm nhất của một dạng hình dữ liệu rõ ràng, 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 phát triển thành trong số trường hợp sau:

Là một cỗ đếm vòng lặp nhằm đếm tần số vòng lặp được triển khai.Để giữ một quý giá đượ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ý giá được trả về bởi một stored procedure hoặc một hàm.

Knhị báo biến

Để knhì báo một đổi mới, chúng ta sử dụng câu lệnh DECLARE. Ví dụ: câu lệnh sau khai báo một biến chuyển mang tên
model_year SMALLINT;Câu lệnh DECLARE sinh sản một biến chuyển bằng phương pháp gán đến nó một tên với dạng hình tài liệu. Tên biến đổi đề nghị ban đầu bằng ký kết từ bỏ
model_year là SMALLINT.

Xem thêm: Rắn 11 Âm Dương Sư 】Khi Nội Sp Đi Rắn 11, Team Đi Rắn 11 Trong 11 Giây Âm Dương Sư Garena

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

Giữa thương hiệu biến hóa với một số loại dữ liệu, bạn có thể áp dụng AStự khóa tùy chọn như sau:

DECLARE
product_name VARCHAR(MAX);

Gán giá trị mang lại biến

Để gán giá trị cho một vươn lên là, bạn sử dụng câu lệnh SET. Ví dụ: câu lệnh sau gán 2018 mang đến biến hóa
model_year trong mệnh đề WHERE để kiếm tìm các 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ồ, chúng ta có thể đặt các trang bị lại cùng nhau cùng thực hiện khối mã sau để có danh sách những thành 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 ý: nhằm xúc tiến mã, chúng ta bấm vào nút ít Exexinh tươi như trong hình sau, hoặc dấn phím F5:

*
Tấm hình tiếp sau đây cho biết thêm công dụng đầu ra:

*

Lưu trữ hiệu quả truy vấn vấn vào biến

Các bước sau đây trình bày cách lưu trữ hiệu quả truy nã vấn vào một biến:

trước hết, khai báo một phát triển thành 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 ghi bị ảnh hưởng, chúng ta thực hiện 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 minh họa cách khai báo nhị biến hóa, gán một bạn dạng ghi cho việc đó cùng xuất ngôn từ của những biến:

Đầu tiên, khai báo các trở thành nhằm tàng trữ tên thành phầm và giá bán niêm yết:

DECLARE
list_price = list_priceFROM production.productsWHERE product_id = 100;Thđọng bố, xuất nội dung của những biến:

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

*

Cộng dồn những quý giá vào trong 1 biến

Stored procedure sau đây có một tsi số cùng trả về list những thành phầm dưới dạng chuỗi:

CREATE PROC uspGetProductList(
product_danh sách với loại varchar cùng gán quý giá của chính nó thành trống.Thứ ba, Shop chúng tôi vẫn sử dụng câu lệnh PRINT để in ấn ra list tên sản phẩm.

Câu lệnh tiếp sau đây thực hiện stored procedure uspGetProductList:

EXEC uspGetProductList 2018Bức Ảnh dưới đây cho biết thêm một trong những phần kết quả đầu ra:

*

Trong phần này, bạn đang mày mò về phát triển thành vào SQL Server bao gồm khai báo đổi mới, gán quý giá cho biến chuyển với gán các ngôi trường của bạn dạng ghi cho những đổi mới.

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

Trong phần này, các bạn sẽ tò mò giải pháp thực hiện các tđắm đuối số OUTPUT (tmê mệt số đầu ra) vào SQL Server nhằm trả tài liệu trở về lịch trình gọi.

Tạo tsay mê số OUTPUT mang đến stored procedure

Để chế tác một tham mê số OUTPUT mang lại 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ông ít tyêu thích số OUTPUT. Ngoài ra, các tmê mẩn số OUTPUT có thể sống bất kỳ mẫu mã tài liệu đúng theo lệ như thế nào như: số nguyên ổn, ngày tháng và chuỗi.

Ví dụ: stored procedure sau đây search tìm các sản phẩm theo năm Model và trả về số số lượng sản phẩm trải qua tsay đắm 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, họ sẽ gán con số bản ghi được trả về do truy tìm vấn (
ROWCOUNT là 1 trong phát triển thành khối hệ thống trả về con số bản ghi được phát âm vì chưng câu lệnh phía đằng trước.

Khi bạn tiến hành câu lệnh CREATE PROCEDURE trên, stored procedure uspFindProductByModel sẽ được biên dịch với lưu lại vào hạng mục các đại lý tài liệu.

Nếu phần nhiều thiết bị phần đa ổn, Squốc lộ Server sẽ chỉ dẫn thông báo sau:

Commands completed successfully.

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

Để xúc tiến stored procedure với các tsay mê số OUTPUT, các bạn tuân theo các bước sau:

trước hết, knhị báo các trở nên nhằm tàng trữ các quý hiếm được trả về vì những tham số OUTPUT.Thđọng nhì, sử dụng những đổi mới này Khi Điện thoại tư vấn triển khai stored procedure.

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

DECLARE
count AS "Number of products found";Bức Ảnh tiếp sau đây cho thấy đầu ra:

*

Trong ví dụ này:

Trước tiên, công ty chúng tôi knhì báo trở nên
count INT;Sau đó, thực hiện stored procedure uspFindProductByModel cùng truyền những tsi số:

EXEC uspFindProductByModel
product_count.

Bạn cũng hoàn toàn có thể xúc tiến stored procedure uspFindProductByModel nlắp gọn gàng như sau:

EXEC uspFindProductByModel 2018,
count AS "Number of products found";Trong phần này, các bạn vẫn học phương pháp sử dụng tsi mê số OUTPUT nhằm truyền tài liệu tự stored procedure quay lại lịch trình đ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ẽ khám phá giải pháp sử dụng câu lệnh BEGIN...END trong SQL Server để bọc một tập hợp những câu lệnh Transact-Squốc lộ thành một kân hận câu lệnh.

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

Câulệnh BEGIN...END trong SQL Server được sử dụng để định nghĩa một kăn năn câu lệnh. Một khối hận câu lệnh bao gồm một tập vừa lòng các câu lệnh SQL thực thi bên nhau.

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

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, chúng ta đặt một tập hòa hợp các câu lệnh Squốc lộ giữa các từ 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 product with price greater than 100000 found";ENDĐầu ra:

*

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

Trong ví dụ này:

Trước tiên, Shop chúng tôi có một kân hận lệnh bước đầu bằng từ khóa BEGIN cùng chấm dứt bằng trường đoản cú khóa END.Lưu ý:
ROWCOUNT là 1 trong những biến chuyển hệ thống trả về số lượng bản ghi bị tác động vày câu lệnh vùng phía đằng trước.

Câu lệnh BEGIN... END số lượng giới hạn một kân hận xúc tí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 sống đầu với cuối của một stored procedure với function.

Câu lệnh BEGIN...END cũng khá được áp dụng cho những câu lệnh IF ELSE, câu lệnh WHILE, v.v., để phủ quanh những 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 trong Squốc lộ Server. Nó đơn giản Có nghĩa là chúng ta có thể đặt một câu lệnh BEGIN...END trong một câu lệnhBEGIN... END không giống .

Hãy chu đáo ví dụ sau:

BEGIN DECLARE
name END ELSE BEGIN PRINT "No hàng hóa found"; END;ENDTrong ví dụ này, Shop chúng tôi vẫn áp dụng câu lệnh BEGIN...END nhằm quấn toàn thể khối câu lệnh. Bên vào khối hận này, công ty chúng tôi cũng sử dụng BEGIN...END cho các câu lệnh IF...ELSE.

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

CURSOR trong Squốc lộ Server

Trong phần này, các bạn sẽ mày mò cách thực hiện CURSOR trong Squốc lộ Server để giải pháp xử lý một tập kết quả, mỗi lần một bạn dạng ghi.

SQL Server hoạt động dựa trên tập thích hợp, ví dụ, câu lệnh SELECT trả về một tập vừa lòng những bản ghi được Gọi là tập kết quả. Tuy nhiên, nhiều lúc, chúng ta có thể ý muốn cách xử trí một tập dữ liệu theo từng bản ghi. Đây là cơ hội CURSOR được sử dụng.

CURSOR là gì?

CURSOR (con trỏ) là 1 trong đối tượng người sử dụng cho phép để mắt qua các phiên bản ghi của tập tác dụng. Nó có thể chấp nhận được bạn giải pháp xử lý từng phiên bản ghi riêng biệt được trả về bởi một tầm nã vấn.

Vòng đời của CURSOR vào Squốc lộ Server

Đây là quá trình nhằm tạo ra với sử dụng một CURSOR:

*

trước hết, 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 hình dạng tài liệu là CURSOR cùng hỗ trợ một câu lệnh SELECT khái niệm tập hiệu quả đến CURSOR.

Tiếp theo, mlàm việc CURSOR để thực thi câu lệnh SELECT:

OPEN cursor_name;Sau kia, để mắt tới từng phiên bản ghi vào CURSOR với đưa vào một trong những hoặc những biến:

FETCH NEXT FROM cursor INTO variable_list;Squốc lộ Server cung ứng biến đổi hệ thống
FETCHSTATUS trả về 0, Có nghĩa là câu lệnh FETCH sẽ thành công. Bạn có thể thực hiện câu lệnh WHILE để chăm nom tất cả những bản ghi từ bỏ CURSOR nhỏng trong khúc mã sau:

WHILE
FETCH_STATUS = 0 BEGIN FETCH NEXT FROM cursor_name; END;Sau lúc đã để ý qua toàn bộ bạn dạng ghi vào CURSOR, họ sẽ đóng góp CURSOR bởi lệnh sau:

CLOSE cursor_name;Cuối thuộc, phân chia CURSOR để giải phóng nó:

DEALLOCATE cursor_name;

ví dụ như CURSOR vào Squốc lộ Server

Chúng tôi đã sử dụng bảng products vào cửa hàng tài liệu mẫu BikeStores nhằm minch họa cho CURSOR trong SQL Server:

*

Trước tiên, knhị báo nhì trở thành nhằm lưu trữ tên thành phầm với niêm yết với một CURSOR để lưu trữ công dụng của truy hỏi vấn lấy thương hiệu 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, msinh hoạt CURSOR:

OPEN cursor_product;Sau kia, chuyên chú từng bản ghi tự CURSOR cùng in ra thương hiệu thành phầm cùng giá chỉ niêm yết:

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

CLOSE cursor_product;Cuối thuộc, phân bổ CURSOR nhằm 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_sản phẩm INTO
list_price; END;CLOSE cursor_product;DEALLOCATE cursor_product;Đây là đầu ra một phần:

*

Trong thực tế, các bạn sẽ thảng hoặc khi thực hiện CURSOR nhằm giải pháp xử lý tập hiệu quả vày nó siêu lờ đờ.

Xem thêm: Code Võ Lâm Truyền Kỳ Mobile Tặng Giftcode Cho Game Thủ 2Game

Trong phần này, các bạn đang học giải pháp áp dụng CURSOR trong SQL Server nhằm giải pháp xử lý một tập tác dụng, mỗi lần một bản ghi.


Chuyên mục: THỦ THUẬT - PHẦN MỀM