Tài liệu hướng dẫn: Stored Procedure

Similar documents
Bộ môn HTMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Bộ môn MMT&TT, Khoa Công Nghệ Thông Tin và TT, ĐH Cần Thơ

Cài đặt và cấu hình StarWind iscsi trên Windows. iscsi SAN là gì?

HƯỚNG DẪN CÀI ĐẶT PHẦN MỀM DIỆT VIRUS AVIRA

Internet Protocol. Bởi: Phạm Nguyễn Bảo Nguyên

CẤU TRÚC DỮ LIỆU NÂNG CAO

HƯỚNG DẪN SỬ DỤNG PLESK PANEL

STACK và QUEUE. Lấy STACK

Giáo trình này được biên dịch theo sách hướng dẫn của Sun Light. Vì là hướng dẫn kỹ thuật, trong này những thuật ngữ kỹ thuật bằng tiếng Anh tôi chỉ

HƯỚNG DẪN SỬ DỤNG HỆ THỐNG CẬP NHẬT CHỨNG THƯ SỐ HOTLINE:

Nội dung chính của chương. Các công nghệ đĩa cứng Cấu tạo vật lý của đĩa cứng Cấu tạo logic của đĩa cứng Cài đặt đĩa cứng như thế nào?

TÀI LIỆU THỰC HÀNH MÔN CƠ SỞ DỮ LIỆU NÂNG CAO

LÂ P TRI NH WEB ASP.NET

Chương 6. Transport Layer. Tài liệu : Forouzan, Data Communication and Networking

Khoa KH & KTMT Bộ môn Kỹ Thuật Máy Tính

Tạo Project với MPLAB

PHÁT TRIỂN ỨNG DỤNG WEB

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Chương 5. Network Layer. Phần 1 - Địa chỉ IPv4. Tài liệu : Forouzan, Data Communication and Networking

Chương 5. Network Layer 19/09/2016 1

TỔNG QUAN VỀ.NET VÀ C#

Bài tập lớn số 1. Giả lập bộ định thời

Bài Thực hành Asp.Net - Buổi 1 - Trang: 1

Lab01: M V C Lưu ý: Để thực hành, các bạn phải cài Visual Studio 2013 trở lên mới hỗ trợ MVC5.

Entity Framework (EF)

BÀI TẬP THỰC HÀNH LẬP TRÌNH WINDOWS C#

Tình huống 1: PPPoE với Username và Password

SIEMENS INDUSTRIAL NETWORKS

CHƯƠNG 2: CÁC ĐẶC ĐIỂM VỀ MÔI TRƯỜNG PHÁT TRIỂN (IDE)

NHẬP MÔN LẬP TRÌNH KHOA HỌC DỮ LIỆU. Bài 10: Thư viện Pandas (2)

BELGIUM ONLINE APPOINTMENT

ĐỌC, GHI XML VỚI C# TRONG ADO.NET --- SỬ DỤNG VISUAL STUDIO

LẬP TRÌNH WINDOWS FORM VỚI CÁC CONTROL NÂNG CAO (Các control trình bày dữ liệu dưới dạng danh sách)

Chương 7. Application Layer. Tài liệu : Forouzan, Data Communication and Networking

BÀI 1: VBA LÀ GÌ? TẠO MACRO, ỨNG DỤNG CÁC HÀM TỰ TẠO (UDF), CÀI ĐẶT ADD-INS VBA là gì?

Online Appointment System will work better with below conditions/ Hệ thống đặt hẹn online sẽ hoạt động tốt hơn với điều kiện sau đây:

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

Tìm hiểu Group Policy Object và các ví dụ

Hướng dẫn cài đặt FPT

HỢP ĐỒNG MUA BÁN HÀNG HÓA QUỐC TẾ GV: NGUYỄN THỊ BÍCH PHƯỢNG

Nhấn nút New để tạo 1 biến mới Trang 17

Cụ thể những công việc mà AndroidManifest.xml thực hiện: - Đặt tên cho Java package của ứng dụng.

BÀI 6 LÀM VIỆC VỚI THÀNH PHẦN MỞ RỘNG CỦA CSS3

HƯỚNG DẪN SỬ DỤNG DỊCH VỤ CDN

HƢỚNG DẪN TRIỂN KHAI KASPERSKY - MOBILE DEVICE MANAGEMENT

Lecture 12. Trees (1/2) Nội dung bài học:

Exceptions. Outline 7/31/2012. Exceptions. Exception handling is an important aspect of objectoriented. Chapter 10 focuses on:

Bài 10: Cấu trúc dữ liệu

I. Hướng Dẫn Đăng Nhập:

SIMULATE AND CONTROL ROBOT

Mạng máy tính - Computer Network: Hệ. Giao thức - Protocol:

HƯỚNG DẪN QUẢN TRỊ HỆ THỐNG

HƯỚNG DẪN SỬ DỤNG ĐẦU GHI H.264 DVR VISION VS (4CH - 8CH - 16CH)

B5: Time to coding. Tới thư mục src/example.java và thay đổi nội dung file như sau: Mã: package at.exam;

GV: Phạm Đình Sắc or

Bài tập căn bản Visual Basic.Net Vòng lặp. txtn. txtketqua. btntinh. txtn. txtketqua. btntinh. Trang 1

Ôn tập Thiết bị mạng và truyền thông DH07TT - Lưu hành nội bộ (không sao chép dưới mọi hình thức)

Tạo repository mới. The working tree. The staging index. Lệnh git init tạo một repository loại git. tại thư mục hiện tại: $ git init

GIẢI THUẬT ĐỊNH TUYẾN (ROUTING ALGORITHM)

Mô hình dữ liệu quan hệ (Relational data model)

HƯỚNG DẪN CÁCH SỬ DỤNG WINDOWS MOVIE MAKER

BẢO MẬT TRONG SQL SERVER

Môn Học: Cơ Sở Dữ Liệu 2. Chương 3 LẤY DỮ LIỆU TỪ NHIỀU NGUỒN

Phần 2. SỬ DỤNG POWERPOINT ĐỂ CHUẨN BỊ NỘI DUNG TRÌNH BÀY

TÀI LIỆU HƯỚNG DẪN SỬ DỤNG HOSTING PLESK PANEL

Dọn "rác" Windows 7 vào dịp cuối năm

BÀI GIẢNG CHƯƠNG 3 GIAO TIẾP KẾT NỐI SỐ LIỆU

Kích hoạt phương thức xa (RMI- Remote Method Invocation )

Bài 13: C++11. EE3490: Kỹ thuật lập trình HK1 2017/2018 TS. Đào Trung Kiên ĐH Bách khoa Hà Nội

Kỹ thuật thu nhỏ đối tượng trong Design (Layout)

Google Search Engine. 12/24/2014 Google Search Engine 1

Bài 10. Cấu trúc liên nối. khác nhau được gọi là cấu trúc liên nối. nhu cầu trao đổi giữa các module.

Bài 7: Các cấu trúc điều khiển

2.4. GIAO THỨC MQTT Các khái niệm cơ bản MQTT được phát triển bởi IBM và Eurotech, phiên bản mới nhất là MQTT 3.1 MQTT (Giao vận tầm xa) là

LAB IP SLA Bài 1. Bùi Quốc Kỳ ***

MA NG MA Y TI NH (Computer Networks)

LINQ TO SQL & ASP.NET

NỘI DUNG ÔN TẬP MÔN HỆ CƠ SỞ DỮ LIỆU

B3: Bên khung Package Explore bên trái đi tới thư mục res, bạn sẽ thấy có 3 thư mục con:

Đa ngôn ngữ (Internationalization) trong Servlet

BÀI LAB ĐỔI TÊN DOMAIN

PHÁT TRIỂN ỨNG DỤNG DI ĐỘNG NÂNG CAO

JAVASCRIPT. Giảng viên : Ths. PHẠM ĐÀO MINH VŨ

Tröôøng Ñaïi Hoïc Baùch Khoa Tp.HCM LẬP TRÌNH MINICHAT. Bài giảng 3. Trang1. Khoa Khoa Học Và Kỹ Thuật Máy Tính

KIẾN TRÚC MÁY TÍNH. Giảng viên: ThS. Phan Thanh Toàn. v

MỤC LỤC. Giáo trình Thiết kế web Trang 1

Các kiểu định địa chỉ họ MSC-51

1 Bước 1: Test thử kit LaunchPad.

BÀI 6a LẬP TRÌNH ĐA TUYẾN (MULTI THREAD)

LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC

biến Global có thể được áp dụng cho tất cả các extension trong tất cả các context trong Dialplan.

LẬP TRÌNH 8051 SỐ HỌC VÀ LÔ GIC

ĐỀ CƯƠNG CHI TIẾT HỌC PHẦN

Cập nhật ResultSet trong JDBC

NHÚNG. Vi ñiều khiển BM Kỹ Thuật ðiện Tử - ðh Bách Khoa TP.HCM 2

dụng một chính sách, điều này giúp dễ dàng quản lý và cung cấp tính năng Load Balancing (cân bằng tải) phục vụ tốt hơn các yêu cầu của tổ chức.

Khối: Cao Đẳng nghề và Trung Cấp Năm 2009

Phần 1: Hướng dẫn sử dụng PictureBox tạo Slide Show

Khoa Công Nghệ Thông Tin Trường Đại Học Cần Thơ. Những hỗ trợ tiên tiến khác của SQL. Đỗ Thanh Nghị

Parallels Cloud Server 6.0

Transcription:

1 Tài liệu hướng dẫn: Stored Procedure Tài liệu hướng dẫn: Stored Procedure Người thực hiện Hoàng Anh Tú Nội dung 1 Giới thiệu... 2 2 Stored Procedure cơ bản... 2 2.1 Tạo Stored Procedure... 3 2.1.1 Tạo bằng SQL Server Management Studio (SSMS)... 3 2.1.2 Tạo bằng script... 4 2.2 Thực thi Stored Procedure... 4 2.2.1 Thực thi bằng giao diện SSMS... 4 2.2.2 Thực thi bằng script... 4 2.3 Thay đổi nội dung Stored Procedure... 5 2.3.1 Thực thi bằng script... 5 2.4 Xóa Stored Produre... 5 2.4.1 Thực thi bằng script... 5 3 Tham số trong Stored Procedure... 5 3.1 Tham số đầu vào... 5 3.2 Tham số đầu ra... 6 4 Trả về giá trị trong Stored Procedure... 7 4.1 Trả về giá trị từ lệnh RETURN... 7 4.2 Trả về dữ liệu từ lệnh SELECT... 8 5 Kết hợp Stored Procedure với các lệnh T-SQL... 9 5.1 Ứng dụng thêm sinh viên vào cơ sở dữ liệu... 9 5.2 Ứng dụng trả về danh sách sinh viên trong lớp... 9

2 1.Giới thiệu 1 Giới thiệu Tài liệu này hướng dẫn thực hành Stored Procedure trong Hệ quản trị cơ sở dữ liệu SQL Server. Nội dung chính bao gồm những phần sau: Hướng dẫn cú pháp Stored Procedure trong SQL Server. Cách gọi, sử dụng lại các Stored Procedure đã tạo. Một số ví dụ Stored Procedure. 2 Stored Procedure cơ bản Khi chúng ta tạo một ứng dụng với Microsoft SQL Server, ngôn ngữ lập trình T-SQL (Transact-SQL) là ngôn ngữ chính giao tiếp giữa ứng dụng và database của SQL Server. Khi chúng ta tạo các chương trình bằng T-SQL, hai phương pháp chính có thể dùng để lưu trữ và thực thi cho các chương trình là: - Chúng ta có thể lưu trữ các chương trình cục bộ và tạo các ứng dụng để gởi các lệnh đến SQL Server và xử lý các kết quả. - Chúng ta có thể lưu trữ những chương trình như các stored procedure trong SQL Server và tạo ứng dụng để gọi thực thi các stored procedure và xử lý các kết quả. Đặc tính của Stored-procedure trong SQL Server: - Stored Procedure là hàm cho phép truyền tham số vào và trả về giá trị. - Bao gồm 1 tập các lệnh T-SQL để xử lý 1 chức năng nào đó trong cơ sở dữ liệu. Ta có thể dùng T SQL EXECUTE để thực thi các stored procedure. Stored procedure khác với các hàm xử lý(user-defined Function) là giá trị trả về của chúng không chứa trong tên và chúng không được sử dụng trực tiếp trong biểu thức. Stored procedure có những thuận lợi so với các chương trình T-SQL lưu trữ cục bộ là: - Stored procedure cho phép điều chỉnh chương trình cho phù hợp: Chúng ta có chỉ tạo stored procedure một lần và lưu trữ trong database một lần, trong chương trình chúng ta có thể gọi nó với số lần bất kỳ. Stored procedure có thể được chỉ rõ do một người nào đó tạo ra và sự thay đổi của chúng hoàn toàn độc lập với source code của chương trình. - Stored procedure cho phép thực thi nhanh hơn: nếu sự xử lý yêu cầu một đoạn source code Transact SQL khá lớn hoặc việc thực thi mang tính lặp đi lặp lại thì stored procedure thực hiện nhanh hơn việc thực hiện hàng loạt các lệnh Transact-SQL. Chúng được phân tích cú pháp và tối ưu hóa trong lần thực thi đầu tiên và một phiên bản dịch của chúng trong đó sẽ được lưu trong bộ nhớ

3 2.Stored Procedure cơ bản để sử dụng cho lần sau, nghĩa là trong những lần thực hiện sau chúng không cần phải phân tích cú pháp và tối ưu lại, mà chúng sẽ sử dụng kết quả đã được biên dịch trong lần đầu tiên. - Stored procedure có thể làm giảm bớt vấn đề kẹt đường truyền mạng: giả sử một xử lý mà có sử dụng hàng trăm lệnh của Transact-SQL và việc thực hiện thông qua từng dòng lệnh đơn, như vậy việc thực thông qua stored procedure sẽ tốt hơn, vì nếu không khi thực hiện chúng ta phải gởi hàng trăm lệnh đó lên mạng và điều này sẽ dẫn đến tình trạng kẹt mạng. - Stored procedure có thể sử dụng trong vấn đề bảo mật của máy: vì người sử dụng có thể được phân cấp những quyền để sử dụng các stored procedure này, thậm chí họ không được phép thực thi trực tiếp những stored procedure này. 2.1 Tạo Stored Procedure 2.1.1 Tạo bằng SQL Server Management Studio (SSMS) Hình 1. Tạo Stored Procedure bằng chương trình SSMS Tạo bằng giao diện SSMS sẽ phát sinh script tạo Stored Procedure sẵng, ta chỉ cần thêm nội dung vào trong phần thân hàm.

4 2.Stored Procedure cơ bản 2.1.2 Tạo bằng script Cú pháp đơn giản: CREATE PROCEDURE procedure_name @parameter1 data_type [output] /*các tham số*/, @parameter2 data_type [output] [khai báo các biến cho xử lý] {Các câu lệnh transact-sql} Phần [output] là phần có thể có hoặc không để xác định loại tham số. CREATE PROCEDURE XinChao @hoten nvarchar(50) print N'Xin chào ' + @hoten CREATE PROC Hello print N'Hello ' + @hoten 2.2 Thực thi Stored Procedure 2.2.1 Thực thi bằng giao diện SSMS 2.2.2 Thực thi bằng script Sử dụng lệnh EXECUTE (có thể viết tắt là EXEC) để thực thi một stored procedure. EXECUTE procedure_name parameter_value1, parameter_value2,.. EXEC procedure_name parameter_value1, parameter_value2,... EXEC XinChao N'Hiệp' Đoạn lệnh trên sẽ tạo kết quả như sau:

5 3.Tham số trong Stored Procedure Hình 2. Kết quả thực thi Stored Procedure XinChao 2.3 Thay đổi nội dung Stored Procedure 2.3.1 Thực thi bằng script ALTER PROCEDURE procedure_name @parameter1 data_type @parameter2 data_type [khai báo các biến cho xử lý] {Các câu lệnh transact-sql} [output] /*các tham số*/, [output] Lúc này, SQL Server sẽ thay thế stored procedure có tên procedure_name bằng 1 stored procedure mới có cùng tên. 2.4 Xóa Stored Produre 2.4.1 Thực thi bằng script DROP PROCEDURE procedure_name DROP PROC procedure_name 3 Tham số trong Stored Procedure Stored Procedure là 1 hàm được lưu trữ sẵng trong cơ sở dữ liệu. Hàm này có thể có 2 loại tham số chính: tham số đầu vào và tham số đầu ra. 3.1 Tham số đầu vào Đây là loại tham số mặc định, cho phép truyền các giá trị vào trong stored procedure để hỗ trợ xử lý. CREATE PROC Cong

6 3.Tham số trong Stored Procedure @So1 int, @So2 int declare @Kq int set @Kq = @So1 + @So2 print @Kq exec Cong 1, 2 Kết quả đoạn lệnh trên sẽ cho kết quả là 3 Hình 3. Kết quả thực thi stored procedure cộng 2 số nguyên 3.2 Tham số đầu ra Tham số dùng để nhận kết quả trả về từ stored procedure. Sử dụng từ khóa OUTPUT (hoặc viết tắt là OUT) để xác định tham số. ALTER PROC Tru @So1 int, @So2 int, @Kq int output set @Kq = @So1 - @So2

7 4.Trả về giá trị trong Stored Procedure DECLARE @test int EXEC Tru 1, 2, @test output PRINT @test Kết quả in ra màn hình là -1. 4 Trả về giá trị trong Stored Procedure Ngoài cách sử dụng tham số đầu ra để trả về giá trị. Có thể sử dụng RETURN để trả về giá trị từ stored procedure hoặc các câu lệnh SELECT khi truy vấn dữ liệu. 4.1 Trả về giá trị từ lệnh RETURN Lệnh RETURN được sử dụng để trả về giá trị từ stored procedure mà không cần sử dụng tham số đầu ra. Giá trị trả về này có một số đặc điểm: - Giá trị trả về chỉ có thể là số nguyên. Nếu trả về các loại giá trị khác thì lúc thực thi stored procedure sẽ báo lỗi (ngoại trừ 1 số kiểu dữ liệu được tự động chuyển đổi sang kiểu số nguyên như:float, double,...). - Giá trị trả về mặc định là 0. - Có thể nhận giá trị trả về này bằng 1 biến. - Sau khi gọi RETURN, stored procedure sẽ trả về giá trị và kết thúc xử lý. CREATE PROC Test @Lenh int if (@Lenh = 1) return 1 if (@Lenh = 2) begin declare @float float set @float = 2.6 end return @float if (@Lenh = 3) begin declare @char varchar(50) set @char = 'hello' end return @char

8 4.Trả về giá trị trong Stored Procedure declare @test float EXEC @test = Test 3 print @test Nếu giá trị truyền vào là 1: stored procedure trả về giá trị 1. Nếu giá trị truyền vào là 2: stored procedure trả về giá trị 2. Nếu giá trị truyền vào là 3: stored procedure báo lỗi không thể chuyển chuỗi hello thành số nguyên. Nếu truyền các giá trị khác: stored procedure trả về giá trị 0. 4.2 Trả về dữ liệu từ lệnh SELECT Mỗi lệnh SELECT đặt trong stored procedure sẽ trả về 1 bảng. CREATE PROC TestSelect SELECT * FROM SINHVIEN SELECT * FROM LOP EXEC TestSelect Kết quả in ra màn hình sẽ là: Hình 4. Kết quả thực hiện stored procedure TestSelect

9 5.Kết hợp Stored Procedure với các lệnh T-SQL 5 Kết hợp Stored Procedure với các lệnh T-SQL Các stored procedure thông thường được tạo ra nhằm giúp thực hiện một số chức năng cần thao tác trong cơ sở dữ liệu. Khi đó, ta cần phải kết hợp nhiều lệnh T-SQL thao tác với dữ liệu như (SELECT, INSERT, UPDATE, DELETE) và các cấu trúc điều khiển (IF, WHILE, CE,...). 5.1 Ứng dụng thêm sinh viên vào cơ sở dữ liệu CREATE PROC ThemSinhVien @mssv varchar(10), @hoten nvarchar(100), @namsinh int, @dantoc nvarchar(20), @malop varchar(10) IF(EXISTS(SELECT * FROM SinhVien s WHERE s.ma = @mssv)) PRINT N'Mã số sinh viên ' + @mssv + N' đã tồn tại' RETURN -1 IF(NOT EXISTS(SELECT * FROM Lop L WHERE L.ma = @malop)) PRINT N'Mã số lớp ' + @malop + N' chưa tồn tại' RETURN -1 INSERT INTO SinhVien(ma, hoten, namsinh, dantoc, malop) VALUES(@mssv, @hoten, @namsinh, @dantoc, @malop) RETURN 0 /* procedure tự trả về 0 nếu không RETURN */ DECLARE @kq INT EXEC @kq = ThemSinhVien '0212005', N'Nguyễn Văn A', 1987, 'Kinh', 'TH2002/01' PRINT @kq 5.2 Ứng dụng trả về danh sách sinh viên trong lớp CREATE PROC XuatDanhSachSinhVien @malop varchar(10) IF(NOT EXISTS(SELECT * FROM Lop L WHERE L.ma = @malop)) PRINT N'Mã số lớp ' + @malop + N' chưa tồn tại' RETURN -1 SELECT * FROM Lop l where l.ma = @malop /*procedure luôn trả về 0 nếu không RETURN*/