Kết quả tạo proc

Một phần của tài liệu QUẢN LÝ BÁN HÀNG MỸ PHẨM CỦA CỬA HÀNG BEAUTY GARDEN (Trang 61 - 69)

Ví dụ 4: Thủ tục thống kê ngày sinh đối với mỗi nhân viên với tham số truyền vào là 1 ngày khoảng thời gian ngày sinh (từ ngày, đến ngày). Thủ tục liệt kê mã nhân viên, họ tên nhân viên, ngày sinh, SDT, địa chỉ.

Createproc sp_ThongKeNgaySinhNV @tungay datetime, @denngay datetime As

Select MaNV, HoTen, NgaySinh, DienThoai, DiaChi

From Nhanvien

Where NgaySinh>=@tungay and NgaySinh<=@denngay

62 | P a g e

--Thực thi

exec sp_ThongKeNgaySinhNV'01/01/1980' , '01/01/1990'

Kết quả:

Hình 4. 15: Kết quả thực thi

Ví dụ 5: Viết thủ tục cho biết danh sách các nhân viên nơi sinh ở TP.HCM

Createproc proc_Nhanvien

As Select * From Nhanvien Where NoiSinh='TP.HCM' --Thực thi exec proc_Nhanvien  Kết quả: Hình 4. 16: Kết quả thực thi

Ví dụ 6: Xem thơng tin nhân viên gồm mã nhân viên, họ tên, ngày sinh, ngày vào làm theo khoảng thời gian từ ngày đến ngày do người dùng yêu cầu.

createproc pr_thongtinnhanvien1(@NgayBatDau NCHAR(10), @NgayKetThuc

NCHAR (10))

as begin

63 | P a g e

if EXISTS(select NgayVaoLam from Nhanvien where @NgayKetThuc >=NgayVaoLam and NgayVaoLam>= @NgayBatDau)

begin

select MaNV, HoTen, NgaySinh, NgayVaoLam

from Nhanvien

where @NgayKetThuc>= NgayVaoLam and NgayVaoLam>= @NgayBatDau

groupby MaNV, HoTen, NgaySinh, NgayVaoLam

end else

print N'Ngày vào làm không hợp lệ'

end -- thực thi exec pr_thongtinnhanvien1'2018-04-15 00:00:00.0000000', '2018-06-15 00:00:00.0000000' exec pr_thongtinnhanvien1'2016-08-08 00:00:00.0000000', '2018-05-03 00:00:00.0000000'  Kết quả: Hình 4. 17: Kết quả thực thi 4.5 Function 4.5.1 Cú pháp function

Create Function Tên_hàm [(Khai báo các tham số)] Returns Kiểu_dữ_liệu_trả_về

64 | P a g e Begin Các_câu_lệnh Return End 4.5.2 Áp dụng

Ví dụ 1:Viết hàm cho biết số lượng đơn đặt hàng với tham số truyền vào là mã nhân viên

CREATEFUNCTION F_SL_MANV(@MaNV NCHAR(6))

RETURNSINT AS

BEGIN

DECLARE @SoLuong INT

SELECT @SoLuong= COUNT(SoPX) FROM Phieuxuat WHERE MaNV =@MaNV

GROUPBY MaNV

RETURN @SoLuong

END

--Xóa

dropfunction F_SL_MANV

--Thực thi

select dbo. F_SL_MANV('NV05')

-- Thực thi c2

print N'số lượng đơn hàng của nhân viên mã số NV05 là: '+ convert(varchar, dbo.F_SL_MANV('NV05'))

65 | P a g e

Hình 4. 18: Kết quả thực thi

Ví dụ 2: Viết hàm xem danh sách các sản phẩm theo Loại sản phẩm (trả về dạng bảng)

CREATEFUNCTION F_DANHSACHSANPHAM(@LoaiSP NvarCHAR(50))

returnstable as

return (select *from Sanpham where MaloaiSP = @LoaiSP)

--Thực thi

select * from F_DANHSACHSANPHAM('BG01')

Kết quả:

Hình 4. 19: Kết quả thực thi 4.6 Trigger

4.6.1 Cú pháp trigger

Create Trigger [ schema_name . ] trigger_name

On { table | view } [ With [ Encryption | Exxcute As Clause ]] {

For | After | Instead Of } { [ Insert ] [ , ] [Update ] [ , ] Delete] } [ Not For Replication] As { sql_statement [ ; ] [ ,...n ]

66 | P a g e

4.6.2 Áp dụng

Ví dụ 1: Số lượng nhập của mỹ phẩm phải lớn hơn hoặc bằng 0

Createtrigger tg_SoLuongnhap

On CTPhieunhap

ForInsert, Update

As

If exists(Select * From inserted Where inserted.Soluong<0)

Begin

print(N'Số lượng nhập phải lớn hơn hoặc bằng 0')

rollbacktran End

--Trigger được kích hoạt khi có lệnh Update vào bảng CTphieunhap

Update CTPhieunhap Set Soluong= 10 Where SoPN='PN005'  Kết quả: Hình 4. 20: Kết quả thực thi Kết quả

67 | P a g e

Hình 4. 21: Kết quả update_trigger

Ví dụ 1: Số lượng nhập phải lớn hơn 10 và nhỏ hơn 25

CreateTrigger tg_SoLuongnhaphang3

On CTphieunhap

ForInsert, Update

As

If exists(Select * From inserted

Where inserted.Soluong<10 or inserted.Soluong >25) Begin

68 | P a g e

Print(N'Số lượng nhập hàng phải lớn hơn 10 và nhỏ hơn 25') rollbacktran

End

--Trigger được kích hoạt khi có lệnh Update vào bảng CTphieunhap

Update CTphieunhap Set SoLuong=12 Where MaSP=N'SP04'  Kết quả Hình 4. 22: Kết quả thực thiKết quả

69 | P a g e

Một phần của tài liệu QUẢN LÝ BÁN HÀNG MỸ PHẨM CỦA CỬA HÀNG BEAUTY GARDEN (Trang 61 - 69)

Tải bản đầy đủ (PDF)

(74 trang)