Stored procedure

32 238 0
Stored procedure

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

STORED PROCEDURE Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ Giới thiệu    Store procedure (SP) tập câu lệnh SQL (chương trình) biên dịch lưu trữ sẵn SQL Server SP cho phép Chứa nhiều câu lệnh, gọi SP khác Nhận tham số đầu vào, đầu Trả trạng thái thực (thành công hay thất bại) nguyên nhân Một số loại SP System stored procedure: SP hệ thống, có tên bắt đầu sp_ User defined stored procedure: SP người dùng định nghĩa Temporary stored procedure: SP tạm thời, bắt đầu # Giới thiệu (tt)  Quá trình tạo SP Phân tích cú pháp:    Nếu có lỗi cú pháp thông báo lỗi không tạo SP Ngược lại tạo SP, tên SP lưu sysobjects, văn lệnh lưu syscomments Thi hành SP (lần đầu biên dịch lại) Đọc văn lệnh syscomments Phân giải tên: liên kết đối tượng mà SP tham khảo đến Tối ưu hóa: tạo kế hoạch thi hành nhanh dựa vào trạng thái CSDL cấu trúc câu lệnh Biên dịch: tạo mã thi hành cho kế hoạch tối ưu hóa đặt vùng procedure cache Thi hành SP Giới thiệu (tt)  Ưu điểm sử dụng SP - - Cho phép ứng dụng khác dùng chung xử lý, đảm bảo tính quán truy xuất xử lý liệu Nhanh, giảm lưu lượng mạng Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ Biến  Biến cục bộ: đối tượng cụ thể lưu giữ giá trị liệu đơn kiểu xác định Tên biến cục bắt đầu ký hiệu @ Biến cục khai báo lệnh DECLARE Ví dụ DECLARE @sl int, @dbname nvarchar(128) Biến cục có kiểu liệu text, ntext image Biến toàn cục (hệ thống): SQL tạo Tên bắt đầu ký hiệu @@ Ví dụ: @@rowcount, @@error -  Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ Lệnh IF … ELSE  Cú pháp IF [ELSE END>]  Ví dụ SELECT * FROM NHANVIEN IF @@rowcount > PRINT N'Có liệu‘ ELSE PRINT N'Bảng chưa có liệu' Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ 10 Tạo SP     Sử dụng lệnh CREATE PROCEDURE để tạo SP, SP lưu DB hành Nếu SP có tạo bảng tạm, bảng tạm tồn thực thi SP, bảng tạm tự động bị xóa thi hành xong SP (bảng tạm có tên bắt đầu ký hiệu #, ví dụ: #NHANVIEN) Trong SP không chứa câu lệnh: CREATE PROCEDURE, CREATE RULE, CREATE VIEW, CREATE TRIGGER Để thi hành lệnh CREATE PROCEDURE, người dùng phải thành viên role: sysadmin, db_owner, db_ddladmin cấp quyền CREATE PROCEDURE 18 Tạo SP (tt)  Cú pháp CREATE PROC [EDURE] [ @ [ = ] [ OUTPUT ] ] [ , n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] AS 19 Tạo SP (tt)  Giải thích - - - Ten_Procedure: tên procedure, SP tạm cục có ký hiệu # trước tên SP @: tên tham số procedure : kiểu liệu tham số : giá trị mặc định tham số OUTPUT: cho phép tham số nhận giá trị trả RECOMPILE: có thêm tùy chọn lần thi hành SQL Server biên dịch lại SP mã SP không lưu vào vùng đệm thủ tục ENCRYPTION: có thêm tùy chọn văn lệnh mã hóa lưu syscomments 20 Tạo SP (tt)  Ví dụ CREATE PROC DS_NHANVIEN AS SELECT * FROM nhanvien  Để thực thi SP EXEC[UTE] [Danh_sach_tham_so] - Ví dụ EXEC DS_NHANVIEN 21 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ 22 Hiệu chỉnh SP  Cú pháp ALTER PROC [EDURE] [ @ [ = ] [ OUTPUT ] ] [ , n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] AS  Ví dụ ALTER PROC DS_NHANVIEN AS SELECT * FROM nhanvien WHERE PHAI= ‘Nam’ 23 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ 24 Xóa SP  Cú pháp DROP PROC [EDURE]  Ví dụ DROP PROC DS_NHANVIEN 25 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ 26 Xem thông tin SP Stored procedure Thông tin sp_help Danh sách tham số kiểu liệu sp_helptext Văn lệnh SP trường hợp không mã hóa sp_depends Liệt kê đối tượng mà SP tham khảo đến đối tượng tham khảo đến SP sp_stored_procedures Danh sách SP DB hành 27 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin SP Ví dụ 28 Ví dụ – có tham số vào, default  Xem danh sách nhân viên theo phòng CREATE PROC DSNV_THEOPHONG @Phong int = AS SELECT * FROM NHANVIEN WHERE PHG = @Phong  Thực thi SP Cách 1:  - EXEC DSNV_THEOPHONG Cách 2:    DECLARE @P int Set @P = EXEC DSNV_THEOPHONG @P 29 Ví dụ – có tham số vào,  Xóa thân nhân theo MANV CREATE PROC XOA_THANNHAN_THEOMANV @MANV nvarchar(20), @SoNVXoa int OUTPUT AS DELETE THANNHAN WHERE MA_NVIEN = @MaNV SET @SoNVXoa = @@rowcount  Thực thi SP - - DECLARE @SoNVXoa int EXEC XOA_THANNHAN_NHANVIEN ‘123’, @SoNVXoa OUTPUT PRINT 'So mau tin bi xoa:' + str(@SoNVXoa,3) 30 Ví dụ – có recompile , encryption  Tăng lương cho nhân viên theo phòng lên @Tyle lần CREATE PROC TANGLUONG_NHANVIEN @Phong int, @Tyle Decimal(3,1), @So_NV_Tang int OUTPUT WITH RECOMPILE, ENCRYPTION AS UPDATE NHANVIEN SET LUONG = LUONG * @Tyle WHERE PHG = @Phong SET @So_NV_Tang = @@rowcount 31 Ví dụ – có chặn lỗi  Thêm phòng ban CREATE PROC THEM_PHONGBAN @TENPHG NVARCHAR(40), @MAPHG INT, @TRPHG NVARCHAR(20), @NG_NHANCHUC SMALLDATETIME, @Loi int OUTPUT AS BEGIN TRY INSERT PHONGBAN VALUES (@TENPHG, @MAPHG, @TRPHG, @NG_NHANCHUC) END TRY BEGIN CATCH SET @Loi = @@error RAISERROR('Loi them du lieu',10,1) RETURN END CATCH SET @Loi = @@error 32 [...]... cấp quyền CREATE PROCEDURE 18 Tạo SP (tt)  Cú pháp CREATE PROC [EDURE] [ @ [ = ] [ OUTPUT ] ] [ , n ] [ WITH { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] AS 19 Tạo SP (tt)  Giải thích - - - Ten _Procedure: tên procedure, các SP tạm cục bộ có ký hiệu # trước tên của SP @: tên tham số của procedure :... pháp DROP PROC [EDURE]  Ví dụ DROP PROC DS_NHANVIEN 25 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin về SP Ví dụ 26 Xem thông tin về SP Stored procedure Thông tin sp_help Danh sách các tham số cùng kiểu dữ liệu sp_helptext Văn bản lệnh của SP...   Sử dụng lệnh CREATE PROCEDURE để tạo SP, SP được lưu ở DB hiện hành Nếu trong SP có tạo một bảng tạm, thì bảng tạm chỉ tồn tại khi thực thi SP, bảng tạm sẽ tự động bị xóa khi thi hành xong SP (bảng tạm có tên bắt đầu bằng ký hiệu #, ví dụ: #NHANVIEN) Trong SP không được chứa các câu lệnh: CREATE PROCEDURE, CREATE RULE, CREATE VIEW, CREATE TRIGGER Để thi hành lệnh CREATE PROCEDURE, người dùng phải... sp_help Danh sách các tham số cùng kiểu dữ liệu sp_helptext Văn bản lệnh của SP trong trường hợp không mã hóa sp_depends Liệt kê các đối tượng mà SP tham khảo đến và các đối tượng tham khảo đến SP sp _stored_ procedures Danh sách các SP trong DB hiện hành 27 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh... DS_NHANVIEN AS SELECT * FROM nhanvien  Để thực thi SP EXEC[UTE] [Danh_sach_tham_so] - Ví dụ EXEC DS_NHANVIEN 21 Nội dung chi tiết            Giới thiệu Biến Lệnh IF … ELSE Lệnh CASE Lệnh While Một số lệnh thông dụng Tạo SP Hiệu chỉnh SP Xóa SP Xem thông tin về SP Ví dụ 22 Hiệu chỉnh SP  Cú pháp ALTER PROC [EDURE] [ @ [ = ... nguyên nhân Một số loại SP System stored procedure: SP hệ thống, có tên bắt đầu sp_ User defined stored procedure: SP người dùng định nghĩa Temporary stored procedure: SP tạm thời, bắt đầu #... Xem thông tin SP Stored procedure Thông tin sp_help Danh sách tham số kiểu liệu sp_helptext Văn lệnh SP trường hợp không mã hóa sp_depends Liệt... 19 Tạo SP (tt)  Giải thích - - - Ten _Procedure: tên procedure, SP tạm cục có ký hiệu # trước tên SP @: tên tham số procedure : kiểu liệu tham số :

Ngày đăng: 03/12/2015, 07:45

Từ khóa liên quan

Mục lục

  • Slide 1

  • Nội dung chi tiết

  • Giới thiệu

  • Giới thiệu (tt)

  • Slide 5

  • Slide 6

  • Biến

  • Slide 8

  • Lệnh IF … ELSE

  • Slide 10

  • Lệnh CASE

  • Slide 12

  • Lệnh WHILE

  • Slide 14

  • Một số lệnh thông dụng

  • Một số lệnh thông dụng (tt)

  • Slide 17

  • Tạo SP

  • Tạo SP (tt)

  • Slide 20

Tài liệu cùng người dùng

Tài liệu liên quan