Ví dụ 2: Tạo tên đồng nghĩa có tên bất kỳ truy xuất vào bảng Khachhang do người dùng dbo làm chủ sỡ hữu
createsynonym kh for dbo.Khachhang
--Thực thi
select *
from kh
54 | P a g e
Hình 4. 3: Kết quả thực thi
--Xóa
dropsynonym kh
Kết quả
Hình 4. 4: Kết quả xóa synonym4.2 Index 4.2 Index
4.2.1 Cú pháp Index
CREATE clustered INDEX index_name ON Table_name ( column )
4.2.2 Áp dụng
Ví dụ 1:Tạo chỉ mục có tên INDEX_Sanpham trên cột MaSP của bảng Sanpham
CREATEindex INDEX_Sanpham on Sanpham(MaSP)
--Thực thi
55 | P a g e
From Sanpham
Where MaSP='SP01'
Kết quả
Hình 4. 5: Kết quả thực thi
Ví dụ 2: Tạo chỉ mục có tên bất kỳ trên cột Diachi của bảng Khachhang
CREATEindex INDEX_Khachhang on Khachhang(Diachi)
--Thực thi
select *
from Khachhang
with (index( INDEX_Khachhang))
where Diachi= N'41 Xóm củi'
Kết quả:
Hình 4. 6: Kết quả thực thi
4.3 View
4.3.1 Cú pháp view
Create view view_Ten as Select cột 1, cột 2 … From tên bảng
56 | P a g e
Where <điều kiện>;
4.3.2 Áp dụng
Ví dụ 1:Tạo vw DanhSachNhanVienNam với các thông tin gồm: mã nhân viên, họ tên nhân viên, ngày sinh của các nhân viên nữ
CREATEVIEW VW_DSNVNam as SELECT MANV,HoTen,NGAYSINH FROM Nhanvien where GioiTinh=0 --Thực thi select* from VW_DSNVNam Kết quả: Hình 4. 7: Kết quả thực thi
Ví dụ 2: Tạo view vwNhanVien với các thông tin: mã nhân viên, họ, tên nhân viên, tuổi nhân viên có độ tuổi từ 25 đến 30 tuổi
createview vw_Nhanvien as
select MaNV, HoTen, NgaySinh, year(getdate())- year(Ngaysinh) as Tuoi
from Nhanvien
whereyear(getdate())- year(Ngaysinh) between 25 and 30
57 | P a g e
select *
from vw_Nhanvien
Kết quả:
Hình 4. 8: Kết quả thực thi
Ví dụ 3:Tạo view vwDsXuathang2020 với các thông tin: Số phiếu xuất, mã nhân viên, của các phiếu xuất ngày bán được lập năm 2020
createview vw_DSXuatHang2020 as select px.SoPX,MaNV,Ngayban
from Phieuxuat px
whereyear(NgayBan) =2020
groupby px.SoPX,MaNV,Ngayban --Thực thi seLECT * from vw_DSXuatHang2020 Kết quả: Hình 4. 9: Kết quả thực thi
Ví dụ 4: Tạo view vwTriGiaHoaDonvới các thông tin: Số phiếu nhập, mã sản phẩm, Tổng trị giá hóa đơn(giá bán x số lượng)của một sản phẩm
58 | P a g e
createview VW_TGHDon as
select Soluong,Gianhap,sum(Soluong*Gianhap) as TriGiaHD,SoPN,MaSP
from CTPhieunhap where MaSP=N'SP01' groupby Soluong,Gianhap,SoPN,MaSP --Thực thi select * from VW_TGHDon Kết quả: Hình 4. 10: Kết quả thực thi 4.4 Store Proceduce 4.4.1 Cú pháp Store Proceduce Create Proc<sp_name> [<cácthamsốhìnhthức>]
[With Recompile | Encryption | Recompile, Encryption] As
[Declare biếncụcbộ] [Begin]
<Cácphátbiểu> [End]
59 | P a g e Recompile: Biên dịch lại thủ tục mỗi lần thủ tục được thực thi
Execute As Clause: Thực thi gọi các thủ tục hoặc hàm khác
For Replication: Nhân bản dữ liệu. Khi dùng với từ khóa này khơng được khai báo các tham số
4.4.2 Áp dụng
Ví dụ 1: Xem thơng tin khách hàng với mã khách hàng do người dùng nhập
create proc pr_TTKhachHang_MAKhH(@MaKH nvarchar (6))
as begin
if exists(select MaKH from Khachhang where MaKH=@MaKH)
begin
select MaKH,TenKH,DiaChi,NgaySinh,SoDT
from Khachhang
where MaKH=@MaKH
groupby MaKH,TenKH,DiaChi,NgaySinh,SoDT
print 'Thơng tin khách hàng có mã'+@MaKH+'Là:'
end else
print N'Mã khách hàng này không tồn tại'
end
--Thực thi
exec pr_TTKhachHang_MaKhH'KH02'
Kết quả:
60 | P a g e
--Thực thi
exec pr_TTKhachHang_MAKhH'KH010'
Kết quả:
Hình 4. 12: Kết quả thực thi
Ví dụ 2: Xem đơn giá của một sản phẩm với mã sản phẩm do người dùng nhập
createproc pr_dongia_MaSP(@MaSP nchar(6))
as begin
if exists( select MaSP from Sanpham where MaSP= @MaSP)
begin
select MaSP, TenSP, MaloaiSP,Donvitinh, Ghichu
from Sanpham
where MaSP=@MaSP
groupby MaSP, TenSP, MaloaiSP,Donvitinh, Ghichu
end else
print N' Mặt hàng này không tồn tại'
end
--Thực thi
exec pr_dongia_MaSP'SP03'
Kết quả:
61 | P a g e
Ví dụ 3: Tạo thủ tục xóa một khách hàng trong bảng KhachHang với tham số mã khách hàng do người dùng nhập và xác định giao dịch hoàn thành hoặc quay lại khi giao dịch có lỗi
createproc sp_delete_ThongTinKhachHang(@MaKhachHang nchar (6))
as
if exists(select *
from Khachhang
where MaKH = @MaKhachHang)
begintran
deletefrom Khachhang
where MaKH = @MaKhachHang
committran if@@ERROR <>0
rollbacktran
Kết quả: