06/04/2021, 14:50

Cách dùng BEGIN - END trong SQL Server - SQL Server nâng cao

Ở những bài trước học stored procedure mình có sử dụng rất nhiều lần cặp lệnh BEGIN - END, vậy đây là lệnh gì và có ý nghĩa như thế nào trong SQL Server thì chúng ta sẽ tìm hiểu trong bài này nhé. 1. Giới thiệu cặp lệnh BEGIN - END Lệnh BEGIN ... END dùng để khai báo một khối lệnh ...

Ở những bài trước học stored procedure mình có sử dụng rất nhiều lần cặp lệnh BEGIN - END, vậy đây là lệnh gì và có ý nghĩa như thế nào trong SQL Server thì chúng ta sẽ tìm hiểu trong bài này nhé.

1. Giới thiệu cặp lệnh BEGIN - END

Lệnh BEGIN ... END dùng để khai báo một khối lệnh SQL. Một khối lệnh là tập hợp những câu SQL sẽ được thực thi chung với nhau.

BEGIN
    { sql_statement | statement_block}
END

Bên trong khối lệnh BEGIN ... END sẽ là tập hợp một hoặc nhiều câu lệnh khác, điều này sẽ giúp tạo ra một chương trình có tính thẩm mỹ và rõ ràng.

Hãy xem ví dụ dưới đây:

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

Ý nghĩa của khối lệnh này là trả về thông báo không tìm thấy sản phẩm nào nếu câu lệnh SELECT phía trên không có dữ liệu.

2. BEGIN - END lồng nhau

Bạn có thể sử dụng BEGIN ... END lồng nhau, nghĩa là khai báo cặp BEGIN ... END bên trong một cặp khác.

BEGIN
    DECLARE @name VARCHAR(MAX);
 
    SELECT TOP 1
        @name = product_name
    FROM
        production.products
    ORDER BY
        list_price DESC;
    
    IF @@ROWCOUNT <> 0
    BEGIN
        PRINT 'The most expensive product is ' + @name
    END
    ELSE
    BEGIN
        PRINT 'No product found';
    END;
END

Nếu bạn là lập trình viên thì chắc chắn sẽ không xa lạ gì với khối lệnh. Ví dụ trong PHP, C#, C++ thì để định nghĩa một khối lệnh thì ta dùng cặp {}, trong PASCAL thì BEGIN ... END.

Như vậy là bạn đã hiểu cách tạo khối lệnh trong SQL Server rồi, bài này mình dừng ở đây, hẹn gặp bạn bài tiếp theo.

Tạ Quốc Bảo

23 chủ đề

7270 bài viết

0