1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng SQL Server: Phần 1 - ĐH Sư phạm kỹ thuật Nam Định

192 22 0

Đ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

Nội dung

Bài giảng SQL Server: Phần 1 cung cấp cho người học những kiến thức như: Tổng quan về SQL Server; Ngôn ngữ Transaction SQL (T-SQL); Quản lý cơ sở dữ liệu; Thủ tục lưu trữ và hàm người dùng; Quản lý Trigger. Mời các bạn cùng tham khảo!

Tập giảng SQL Server MỤC LỤC LỜI NÓI ĐẦU .xi Chƣơng TỔNG QUAN VỀ SQL SERVER 1.1 Giới thiệu SQL Server 1.2 Các mô hình sử dụng SQL Server 1.2.1 Mơ hình Client/Server 1.2.2 Mơ hình Desktop 1.2.3 Mô hình SOA 1.3 Các tính SQL Server 2008 1.4 Các phiên SQL Server 2008: 1.5 Cài đặt SQL Server 1.6 Các thành phần SQL Server 14 1.6.1 Thành phần Server 14 1.6.2 Thành phần Client 15 1.6.3 Các công cụ đồ họa 15 1.7 Quản lý dịch vụ SQL server 16 1.7.1 Dịch vụ SQL Server Configuration Manager 16 1.7.2 Sử dụng SQL Server Management Studio 16 1.8 Giới thiệu SQL server 2012 18 Chƣơng NGÔN NGỮ TRANSACTION SQL (T-SQL) 23 2.1 Ngôn ngữ T-SQL 23 2.1.1 Giới thiệu phát biểu T-SQL 23 2.1.2 Cú pháp T-SQL 24 2.1.3 Lập trình T-SQL 25 2.2 Ngôn ngữ định nghĩa liệu 46 2.2.1 Tạo đối tượng 46 2.2.2 Sửa đối tượng 50 2.2.3 Xóa đối tượng 52 2.2.4 Các loại ràng buộc liệu 53 2.3 Ngôn ngữ thao tác liệu 58 2.3.1 Câu lệnh SELECT 58 2.3.2 Câu lệnh INSERT 67 2.3.3 Câu lệnh UPDATE 67 2.3.4 Câu lệnh DELETE 68 2.4 Ngôn ngữ điều khiển liệu 69 2.4.1 Câu lệnh GRANT 69 2.4.2 Câu lệnh REVOKE 69 i Tập giảng SQL Server 2.4.3 Câu lệnh DENY 70 2.5 Thực thi T-SQL 70 Chƣơng QUẢN LÝ CƠ SỞ DỮ LIỆU 72 3.1 Cơ sở liệu 72 3.1.1 Các hệ thống sở liệu 72 3.1.2 Tạo sở liệu 74 3.1.3 Cấu trúc sở liệu 79 3.1.4 Sửa tên sở liệu 80 3.1.5 Xoá sở liệu 80 3.1.6 Quản lý dung lượng sở liệu 81 3.2 Bảng liệu 82 3.2.1 Tạo cấu trúc bảng 82 3.2.2 Thao tác với ràng buộc liệu 84 3.2.3 Thao tác với bảng liệu 90 3.3 Chỉ mục 108 3.3.1 Các khái niệm 108 3.3.2 Tạo mục 110 3.3.3 Loại bỏ mục 112 3.4 View 112 3.4.1 Khái niệm view 112 3.4.2 Các thao tác với View 112 Chƣơng THỦ TỤC LƢU TRỮ VÀ HÀM NGƢỜI DÙNG 115 4.1 Thủ tục lƣu trữ (Stored Procedure) 115 4.1.1 Khái niệm 115 4.1.2 Các loại thủ tục lưu trữ 116 4.1.3 Ngôn ngữ DLL thủ tục lưu trữ 118 4.1.4 Tham số thủ tục lưu trữ 120 4.1.5 Giá trị trả thủ tục lưu trữ 122 4.1.6 Thao tác với thủ tục lưu trữ 123 4.2 Hàm ngƣời dùng (User Defined Functions) 126 4.2.1 Khái niệm 126 4.2.2 Các loại hàm người dùng ngôn ngữ DLL cho hàm người dùng 127 4.2.3 Thao tác với hàm người dùng 136 Chƣơng QUẢN LÝ TRIGGER 142 5.1 Giới thiệu 142 5.1.1 Khái niệm 142 5.1.2 Các ứng dụng Trigger 142 ii Tập giảng SQL Server 5.1.3 Các khả Trigger 144 5.1.4 Cơ chế hoạt động Trigger .144 5.1.5 Các loại Trigger 145 5.1.6 Các đặc trưng hạn chế Trigger 145 5.2 Ngôn ngữ DLL Trigger 146 5.3 Lập trình với Trigger 148 5.3.1 Bảng trung gian 148 5.3.2 Các lệnh hệ thống hàm sử dụng trigger 151 5.3.3 Các thao tác lập trình trigger .160 5.4 Thao tác với Trigger 178 Chƣơng SAO LƢU VÀ PHỤC HỒI DỮ LIỆU 181 6.1 Khái niệm lƣu sở liệu 181 6.1.1.Các loại lưu sở liệu 181 6.1.2 Thực lưu 182 6.2 Phục hồi sở liệu 185 6.2.1 Khái niệm 185 6.2.2 Thực phục hồi 186 6.3 Xây dựng kế hoạch lƣu sở liệu 188 6.3.1 Tạo kế hoạch chi tiết 188 6.3.2 Tạo nghiệp vụ lưu chi tiết .193 6.4 Sao chép liệu 195 Chƣơng QUẢN LÝ BẢO MẬT VÀ NGƢỜI DÙNG 202 7.1 Các chế độ xác thực SQL SERVER 202 7.1.1 Chế độ xác thực thông qua hệ điều hành .202 7.1.2 Chế độ xác thực SQL Server 203 7.2 Các nhóm quyền SQL Server 204 7.3.Quản lý tài khoản cho ngƣời sử dụng 205 7.3.1 Tạo tài khoản 205 7.3.2 Khai báo nhóm quyền cho tài khoản 210 7.3.3.Tài khoản người dùng sở liệu .211 Chƣơng SQL SERVER VÀ LẬP TRÌNH ỨNG DỤNG 217 8.1 Các mơ hình kết nối ứng dụng đến SQL Server 217 8.1.1 Mơ hình ADO 217 8.1.2 Mơ hình ADO.NET .218 8.2 Ví dụ minh họa 232 BÀI TẬP .249 TÀI LIỆU THAM KHẢO xii iii Tập giảng SQL Server CÁC DANH MỤC HÌNH Hình 1.1 Mơ hình Client/Server Hình 1.2 Mơ hình Desktop Hình 1.3 Mơ hình OSA Hình 1.4 Đặc tính SQL Server Hình 1.5 Một số phiên SQL Server Hình 1.6 Phiên Web Hình 1.7 Phiên Compact Hình 1.8 Xác định quyền cài đặt Hình 1.9 Kiểm tra trước cài đặt Hình 1.10 Các lựa chọn cài đặt Hình 1.11 Kiểm tra yêu cầu máy tính trước cài đặt Hình 1.12 Các tính cài đặt Hình 1.13 Cấu hình cài đặt 10 Hình 1.14 Cấu hình Server 11 Hình 1.15 Cấu hình Database Engine 12 Hình 1.16 Cấu hình dịch vụ Report 12 Hình 1.17 Xác định phản hồi 13 Hình 1.18 Các thơng số lựa chọn cài đặt 13 Hình 1.19 Thực cài đặt 14 Hình 1.20 Các công cụ đồ họa 15 Hình 1.21 Cửa sổ Configuration Manager 16 Hình 1.22 Đăng nhập vào SQL Server Management Studio 17 Hình 1.23 Cửa sổ đăng nhập 18 Hình 1.24 Cửa sổ SQL Server Management Studio 18 Hình 2.1 Tạo kiểu liệu người dùng 30 Hình 2.2 Thiết lập thơng số cho kiểu liệu người dùng 30 Hình 2.3 Kết xác định tiêu đề trường 59 Hình 2.4 Tạo script 71 Hình 3.1 Cơ sở liệu hệ thống 72 Hình 3.2 Thay đổi liệu hệ thống 73 Hình 3.3 Xem liệu hệ thống 73 Hình 3.4 Cơ sở liệu người dùng tạo 74 Hình 3.5 Tạo sở liệu 75 Hình 3.6 Nhập tên sở liệu 75 Hình 3.7 Chọn tài khoản 76 iv Tập giảng SQL Server Hình 3.8 Thay đổi vị trí lưu tập tin 76 Hình 3.9 Chọn thư mục chứa tập tin 77 Hình 3.10 Nhập tên tập tin thứ cấp 77 Hình 3.11 Khai báo dung lượng ban đầu 78 Hình 3.12 Khai báo tự động tăng dung lượng 78 Hình 3.13 Cơ sở liệu tạo 78 Hình 3.14 Cửa sổ New Query 79 Hình 3.15 Khai báo câu lệnh 79 Hình 3.16 Thực thi câu lệnh T-SQL 79 Hình 3.17 Cấu trúc sở liệu 80 Hình 3.18 Xóa sở liệu 80 Hình 3.19 Xác nhận xóa sở liệu 81 Hình 3.20 Loại bỏ dung lượng sở liệu dư thừa 81 Hình 3.21 Thiết lập thơng số cho chức Shink 82 Hình 3.22 Bảng sở liệu 82 Hình 3.23 Tạo bảng liệu 83 Hình 3.24 Thiết kế bảng liệu 83 Hình 3.25 Đặt tên bảng liệu 83 Hình 3.26 Mở bảng chế độ Design 84 Hình 3.27 Tạo ràng buộc khóa 84 Hình 3.28 Tạo ràng buộc khóa ngoại 85 Hình 3.29 Nhập tên cho ràng buộc khóa ngoại 85 Hình 3.30 Chọn trường cho khóa chính-khóa ngoại 85 Hình 3.31 Chọn chế độ Delete Update 86 Hình 3.32 Kết sau tạo ràng buộc khóa ngoại khóa ngoại 86 Hình 3.33 Tạo ràng buộc 86 Hình 3.34 Nhập tên cho ràng buộc 87 Hình 3.35 Chọn trường cần tạo ràng buộc 87 Hình 3.36 Kết tạo ràng buộc 87 Hình 3.37 Tạo ràng buộc kiểm tra 88 Hình 3.38 Nhập tên cho ràng buộc kiểm tra 88 Hình 3.39 Nhập điều kiện cho ràng buộc kiểm tra 88 Hình 3.40 Kết tạo ràng buộc kiểm tra 89 Hình 3.41 Tạo ràng buộc mặc định 89 Hình 3.42 Kết tạo ràng buộc mặc định 89 Hình 3.43 Tạo kết nối bảng 90 Hình 3.44 Chọn bảng liệu 90 v Tập giảng SQL Server Hình 3.45 Tạo kết nối 91 Hình 3.46 Kiểm tra trường kết nối 91 Hình 3.47 Xác nhận mối kết nối 91 Hình 3.48 Mối kết nối tạo 92 Hình 3.49 Lưu mối kết nối 92 Hình 3.50 Thay đổi cấu trúc bảng liệu 92 Hình 3.51 Thiết kế lại bảng liệu 92 Hình 3.52 Xác nhận việc thiết kế lại bảng liệu 93 Hình 3.53 Xóa bảng liệu 93 Hình 3.54 Xác nhận việc xóa bảng liệu 94 Hình 3.55 Nhập liệu cho bảng 94 Hình 3.56 Nhập liệu cho trường 95 Hình 3.57 Chọn chức Import 95 Hình 3.58 Chọn liệu nguồn 96 Hình 3.59 Chọn liệu đích 96 Hình 3.60 Chọn phương thức Import 97 Hình 3.61 Chọn Sheet chứa liệu 97 Hình 3.62 Thực thi lưu trữ file đóng gói 98 Hình 3.63 Thực Import 98 Hình 3.64 Kết Import 99 Hình 3.65 Chọn chức Export 99 Hình 3.66 Chọn liệu nguồn 100 Hình 3.67 Chọn liệu đích 100 Hình 3.68 Chọn phương thức Export 101 Hình 3.69 Chọn liệu cần xuất 101 Hình 3.70 Kiểm tra kiểu liệu 102 Hình 3.71 Thực thi lưu trữ file đóng gói 102 Hình 3.72 Thực Export 103 Hình 3.73 Cập nhật liệu cho trường 103 Hình 3.74 Xóa ghi 104 Hình 3.75 Xác nhận việc xóa ghi 104 Hình 3.76 Chọn chức Detach 105 Hình 3.77 Thực Detach 105 Hình 3.78 Chọn chức Attach 106 Hình 3.79 Cửa sổ Attach 106 Hình 3.80 Chọn tên tệp tin 107 Hình 3.81 Cửa sổ Attach sau chọn tệp tin 107 vi Tập giảng SQL Server Hình 3.82 Truy vấn thơng tin bảng 108 Hình 3.83 Tạo mục 110 Hình 3.84 Chọn thông số cho mục 111 Hình 3.85 Chọn trường làm mục 111 Hình 3.86 Kết tạo mục liên cung 112 Hình 3.87 Tạo view 112 Hình 3.88 Chọn liệu nguồn cho view 113 Hình 3.89 Thiết kế View 113 Hình 3.90 Tạo nhóm 114 Hình 3.91 Thiết kế nhóm 114 Hình 4.1 Thơng tin bảng sở liệu Master 117 Hình 4.2 Kết thêm người dùng 117 Hình 4.3 Tạo thủ tục lưu trữ 123 Hình 4.4 Viết mã lệnh tạo thủ tục lưu trữ MS 123 Hình 4.5 Viết mã lệnh tạo thủ tục lưu trữ T-SQL 124 Hình 4.6 Kết tạo thủ tục lưu trữ 124 Hình 4.7 Thực thi thủ tục lưu trữ cơng cụ MS 125 Hình 4.8 Nhập giá trị cho tham số nhập 125 Hình 4.9 Xây dựng hàm vô hướng 137 Hình 4.10 Xây dựng hàm trực tuyến 137 Hình 4.11 Xây dựng hàm đa lệnh 138 Hình 4.12 Kết tạo hàm người dùng 139 Hình 5.1 Kết thực hành động Insert 149 Hình 5.2 Kết thực hành động Delete 150 Hình 5.3 Kết thực hành động Update 151 Hình 5.4 Thứ tự trường bảng Muaban 156 Hình 5.5 Thứ tự trường bảng Thisinh 156 Hình 5.6 Tạo Trigger 179 Hình 5.7 Kết tạo Trigger 179 Hình 6.1 Sao lưu sở liệu 183 Hình 6.2 Loại lưu sở liệu 183 Hình 6.3 File lưu 184 Hình 6.4 Chọn đường dẫn lưu trữ file backup 185 Hình 6.5 Chọn thư mục lưu file backup 185 Hình 6.6 Thao tác phục hồi liệu 186 Hình 6.7 Chọn sở liệu nguồn cần khôi phục 186 Hình 6.8 Khơi phục liệu từ thiết bị lưu trữ 187 vii Tập giảng SQL Server Hình 6.9 Bổ sung file backup 187 Hình 6.10 Chọn file backup để khôi phục 187 Hình 6.11 Chọn file backup 188 Hình 6.12 Thông báo khôi phục thành công 188 Hình 6.13 Chọn chức New Mainternance Plan 189 Hình 6.13 Đặt tên kế hoạch 190 Hình 6.14 Khai báo cấu hình kế hoạch tạo 190 Hình 6.15 Khai báo kế hoạch chi tiết 190 Hình 6.16 Khai báo lịch trình thực 191 Hình 6.17 Chọn lịch trình lưu theo ngày 191 Hình 6.18 Chọn lịch trình lưu theo tuần 191 Hình 6.19 Chọn lịch trình lưu theo tháng 192 Hình 6.20 Giao diện kế hoạch thứ 192 Hình 6.21 Kết thúc khai báo chi tiết cho kế hoạch thứ 192 Hình 6.22 Thêm nghiệp vụ vào kế hoạch lưu 193 Hình 6.23 Danh sách sở liệu 194 Hình 6.24.Cấu hình tạo 194 Hình 6.25 Lưu kế hoạch chi tiết 194 Hình 6.26 Kế hoạch chi tiết 195 Hình 6.27 Thao tác chép sở liệu 195 Hình 6.28 Sao chép sở liệu 196 Hình 6.29 Khai báo sở liệu nguồn 196 Hình 6.30 Khai báo sở liệu đích 197 Hình 6.31 Phương pháp chép 197 Hình 6.32 Chọn sở liệu chép 198 Hình 6.33 Cấu hình sở liệu đích 198 Hình 6.34 Cấu hình cho gói chép 199 Hình 6.35 Chọn chế độ thực thi 199 Hình 6.36 Màn hình tóm tắt q trình chép 200 Hình 6.37 Thơng báo chép khơng thành cơng 200 Hình 6.38 Khởi động dịch vụ Agent 201 Hình 7.1 Mơ hình chế độ bảo mật SQL Server 202 Hình 7.2 Đăng nhập tài khoản hệ điều hành 203 Hình 7.3 Tài khoản người sử dụng SQL Server 203 Hình 7.4 Đăng nhập tài khoản SQL Server 204 Hình 7.5 Màn hình tạo tài khoản windows 205 Hình 7.6 Tạo tài khoản Windows 205 viii Tập giảng SQL Server Hình 7.7 Nhập thơng số cho tài khoản Windows 206 Hình 7.8 Kết tạo tài khoản Windows thành cơng 206 Hình 7.9 Tạo login 207 Hình 7.10 Khai báo tên tài khoản Window 207 Hình 7.11 Danh sách login hệ thống 207 Hình 7.12 Chọn tài khoản hệ điều hành 208 Hình 7.13 Tìm kiếm tài khoản 208 Hình 7.14 Danh sách tài khoản hệ điều hành 208 Hình 7.15 Màn hình nhập tên tài khoản 209 Hình 7.16 Khai báo tên tài khoản SQL Server 209 Hình 7.17 Thay đổi thơng số cho tài khoản 210 Hình 7.18 Chọn vai trò máy chủ 210 Hình 7.19 Chọn sở liệu cho tài khoản 212 Hình 7.20 Tạo user cho sở liệu 213 Hình 7.21 Khai báo tài khoản sở liệu 213 Hình 7.22 Tìm tài khoản người dùng 214 Hình 7.23 Chọn tên người dùng 214 Hình 7.24 Tìm loại giản đồ 214 Hình 7.25 Chọn loại giản đồ 215 Hình 7.26 Gán quyền thao tác liệu 215 Hình 7.27 Chọn chế độ Login 216 Hình 8.1 Mơ hình ADO 218 Hình 8.2 Mơ hình ADO.NET 219 Hình 8.3 Các lớp OleDb SqlClient 220 Hình 8.4 Mối liên hệ lớp Command lớp khác 223 Hình 8.5 Lớp SqlDataAdapter 226 Hình 8.6 Form quản lý thông tin sinh viên 232 Hình 8.7 Cửa sổ tạo dự án 232 Hình 8.8 Form xếp tìm kiếm sinh viên 243 Hình 8.9 Tạo form 244 Hình 8.10 Tạo View lớp 244 Hình 9.1 Tạo sở liệu 252 Hình 9.2 Xác định thông số sở liệu 252 Hình 9.3 Tạo bảng liệu 253 Hình 9.4 Thiết kế bảng liệu 253 Hình 9.5 Lưu bảng liệu 253 Hình 9.6 Tạo khóa 254 ix Tập giảng SQL Server Hình 9.7 Tạo khóa ngoại 254 Hình 9.8 Xác định thơng số khóa ngoại 254 Hình 9.9 Chọn trường cho khóa chính-khóa ngoại 255 Hình 9.10 Tạo ràng buộc 255 Hình 9.11 Nhập tên cho ràng buộc 256 Hình 9.12 Chọn trường làm ràng buộc 256 Hình 9.13 Tạo ràng buộc kiểm tra 257 Hình 9.14 Nhập tên cho ràng buộc kiểm tra 257 Hình 9.15 Nhập điều kiện cho ràng buộc kiểm tra 257 Hình 9.16 Tạo ràng buộc mặc định 258 Hình 9.17 Tạo kết nối bảng 258 Hình 9.18 Chọn bảng liệu 258 Hình 9.19 Tạo kết nối 259 Hình 9.20 Kiểm tra trường kết nối 259 Hình 9.21 Xác nhận mối kết nối 259 Hình 9.22 Lưu mối kết nối 260 Hình 9.23 Tạo mục 260 Hình 9.24 Chọn thông số cho mục 260 Hình 9.25 Chọn trường làm mục 261 Hình 9.26 Chọn chức Import 261 Hình 9.27 Chọn liệu nguồn 262 Hình 9.28 Chọn liệu đích 262 Hình 9.29 Chọn phương thức Import 263 Hình 9.31 Thực thi lưu trữ file đóng gói 264 Hình 9.32 Thực Import 264 Hình 9.33 Tạo view 265 Hình 9.34 Chọn liệu nguồn cho view 265 Hình 9.35 Thiết kế View ý 265 Hình 9.36 Thiết kế View ý 266 Hình 9.37 Thiết kế View ý 267 Hình 9.38 Thiết kế View ý 267 Hình 9.39 Thiết kế View ý 268 x Tập giảng SQL Server AS BEGIN declare @man nvarchar(15) select @man=(select man from deleted) if (select count(*) from deleted)>0 begin if exists (select * from thisinh where man=@man) begin rollback tran raiserror('Khơng thể xóa ngành học này',16,6) end else begin raiserror('Ngành học bị xóa',16,6) end end else begin raiserror('Không tồn ngành học này',16,6) end END Trường hợp 1: Khơng có ngành học bảng ngành Trường hợp 2: Tồn ngành học bảng thí sinh 166 Tập giảng SQL Server Trường hợp 3: Xóa ngành học bảng ngành Ví dụ 2: Xây dựng trigger bảng độc giả để kiểm tra ràng buộc tồn vẹn liệu người dùng xóa độc giả Cần phải kiểm tra ràng buộc toàn vẹn liệu sau: Kiểm tra xem độc giả bị xóa có mượn sách khơng Nếu thí sinh có mượn sách xóa thơng tin liên quan đến thí sinh bảng mượn trả CREATE TRIGGER Trigger_DEL_DG ON Docgia AFTER DELETE AS BEGIN declare @madg nvarchar(15) declare @sbg integer declare @sbgs nvarchar(15) select @madg=(select madg from deleted) if (select count(*) from deleted)>0 begin raiserror('Độc giả bị xóa',16,6) if exists (select * from muontra where madg=@madg) begin select @sbg=(select count(*) from muontra where madg=@madg) 167 Tập giảng SQL Server delete from muontra where madg=@madg select @sbgs=(CONVERT(nvarchar(10),@sbg)+' Bản ghi bảng mượn trả bị xóa') raiserror(@sbgs,16,6) end end else begin raiserror('Khơng có độc giả này',16,6) end END Trường hợp 1: Khơng có độc giả bảng độc giả Trường hợp 2: Độc giả chưa mượn sách lần Trường hợp 3: Thơng tin có hai bảng độc giả, mượn trả 168 Tập giảng SQL Server 3) Khi cập nhật ghi Trigger kiện tự động kích hoạt liệu bảng bị sửa đổi Trong trigger có số kiểm tra ràng buộc tồn vẹn liệu là: kiểm tra ràng buộc toàn vẹn liệu khóa ngoại, miền giá trị, liên thuộc tính bảng liệu, liên thuộc tính nhiều bảng liệu khác Tuy nhiên, ta nên hạn chế việc sửa đổi liệu, cho phép người sử dụng sửa đổi liệu số cột định bên bảng Để kiểm tra giá trị liệu cột bên bảng có bị thay đổi trigger sửa đổi liệu, ta sử dụng hàm UPDATE Hành động sửa đổi liệu bên Microsoft SQL Server thực chất kết hợp hai hành động kèm xóa liệu cũ có thêm lại liệu sửa đổi Do đó, bên trigger sửa đổi liệu bảng Inserted chứa đựng liệu sau sửa đổi bảng Deleted chứa đựng liệu cũ trước sửa đổi Thông thường trigger sửa đổi tham chiếu đến lúc hai bảng Inserted Deleted Ví dụ: Xây dựng trigger bảng hồ sơ để kiểm tra ràng buộc toàn vẹn liệu người dung cập nhật ghi Cần phải kiểm tra ràng buộc tồn vẹn liệu sau: Khơng cho phép cập nhật mã nhân viên Ngày vào ngành phải lớn ngày sinh CREATE TRIGGER Trigger_Update_HS ON Hoso AFTER UPDATE AS BEGIN declare @ngayvn as date declare @ngays as date if (select count(*) from inserted)>0 begin if update(manv) begin raiserror('Không thể cập nhật mã nhân viên',16,1) rollback tran end if update(ngayvn) begin 169 Tập giảng SQL Server select @ngayvn=(select ngayvn from inserted) select @ngays=(select ngaysinh from inserted) if @ngayvn0 begin set @slx=(select slx from inserted) set @dgx=(select dgx from inserted) set @sln=(select sln from nhap where mamh=@mamh) set @dgn=(select dgn from nhap where mamh=@mamh) if @slx>@sln or @dgn>@dgx begin rollback tran raiserror('Số lượng xuất, đơn giá xuất không hợp lệ',16,2) end else begin update tonkho set slt=slt-@slx where mamh=@mamh end end else begin rollback tran raiserror('Không tồn mặt hàng này',16,2) end END Trường hợp 1: Thêm thành công 172 Tập giảng SQL Server Trường hợp 2: Không thêm ghi vào bảng xuất Trường hợp 3: Không tồn mặt hàng b) Khi xóa ghi: Ngược lại với việc thêm mới, giá trị dịng liệu bảng bị hủy bỏ ta cập nhật thay đổi giá trị cột bảng liên quan Ví dụ: Tạo Trigger cho bảng xuất hàng xóa ghi Khi ghi bị xóa phải thay đổi giá trị trường số lượng tồn kho bảng tồn kho CREATE TRIGGER Trigger_DEL_xuat ON Xuat AFTER Delete AS BEGIN declare @mamh as nvarchar(50) 173 Tập giảng SQL Server declare @slx as float set @mamh=(select mamh from deleted) if (select count(*) from nhap where mamh=@mamh)>0 begin set @slx=(select slx from deleted) update tonkho set slt=slt+@slx where mamh=@mamh end else begin rollback tran raiserror('Không tồn mặt hàng này',16,2) end END Trường hợp 1: Không tồn mặt hàng Trường hợp 2: Thực việc xóa cập nhật liệu thành công c) Khi cập nhật ghi: Sau ghi sửa đổi, ta phải tính tốn để cập nhật lại giá trị cột bảng có liên quan khớp với giá trị vừa sửa đổi Việc cập nhập tăng giảm so với giá trị cũ trước hoàn toàn tùy thuộc vào giá trị chênh lệch giá trị sửa đổi giá trị cũ trước 174 Tập giảng SQL Server Vì vậy, nguyên tắc chung trigger sửa đổi liệu cập nhật lại giá trị chênh lệch sau trước sửa đổi liệu, tùy thuộc vào số chênh lệch âm dương mà giá trị cập nhật giảm tăng so với giá trị hành Ví dụ 1: Tạo Trigger cho bảng nhập hàng cập nhật ghi Ta cần kiểm tra ràng buộc toàn vẹn liệu: - Không cho phép cập nhật mã mặt hàng, tên mặt hàng - Kiểm tra số lượng nhập phải lớn số lượng xuất - Kiểm tra đơn giá nhập phải nhỏ đơn giá xuất Nếu tất ràng buộc toàn vẹn liệu hợp lệ thay đổi giá trị trường số lượng tồn kho bảng tồn kho CREATE TRIGGER Trigger_Update_Nhap ON Nhap AFTER Update AS BEGIN declare @mamh as nvarchar(50) declare @slx as float declare @sln as float declare @dgx as float declare @dgn as float if (COLUMNS_UPDATED() & 3) > begin rollback tran raiserror('Không cho phép cập nhật mã mặt hàng, tên mặt hàng',16,2) end else begin set @mamh=(select mamh from inserted) if (select count(*) from nhap where mamh=@mamh)>0 begin set @sln=(select sln from inserted) set @dgn=(select dgn from inserted) set @slx=(select slx from xuat where mamh=@mamh) set @dgx=(select dgx from xuat where mamh=@mamh) if @slx>@sln or @dgn>@dgx begin 175 Tập giảng SQL Server rollback tran raiserror('Số lượng nhập, đơn giá nhập không hợp lệ',16,2) end else begin update tonkho set slt=@sln-@slx where mamh=@mamh end end else begin rollback tran raiserror('Không tồn mặt hàng này',16,2) end end END Trường hợp 1: Số lượng nhập, đơn giá nhập không hợp lệ Trường hợp 2: Thực việc cập nhật thành công Trường hợp 3: Không tồn mặt hàng 176 Tập giảng SQL Server Trường hợp 4: Không cho phép cập nhật tên mặt hàng Ví dụ 2: Xây dựng trigger bảng phịng ban để kiểm tra ràng buộc toàn vẹn liệu người dùng cập nhật ghi Cần phải kiểm tra ràng buộc toàn vẹn liệu sau: Khi cập nhật mã phòng bảng phòng ban mã phịng bảng lương cập nhật theo CREATE TRIGGER TriggerUpdate_Phong ON Phong AFTER UPDATE AS BEGIN declare @mapmoi as nvarchar(10) declare @mapcu as nvarchar(10) select @mapmoi=(select maphong from inserted) select @mapcu=(select maphong from deleted) if (select count(*) from deleted)>0 begin update luong set maphong=@mapmoi where maphong=@mapcu raiserror('Mã phòng bảng lương cập nhật',16,1) 177 Tập giảng SQL Server raiserror('Mã phòng bảng phịng cập nhật',16,1) end else begin raiserror('Khơng có phịng này',16,1) end END Trường hợp 1: Có phịng bảng phịng để cập nhật Trường hợp 2: Khơng có phịng bảng phịng để cập nhật Tóm lại, việc phân chia, tổ chức kiểm tra ràng buộc toàn vẹn liệu phức tạp cập nhật liệu tự động đối tượng trigger làm cho xử lý tập trung máy chủ độc lập với ngơn ngữ lập trình máy trạm Điều làm cho tốc độ ứng dụng theo mơ hình khách chủ nhanh 5.4 Thao tác với Trigger 1) Tạo Trigger - Dùng công cụ MS Bước 1: Chọn tên sở liệu/Chọn Tables/Chọn tên bảng/Chọn Triggers/Chọn chuột phải/Chọn New Trigger 178 Tập giảng SQL Server Hình 5.6 Tạo Trigger Bước 2: Viết đoạn mã lệnh để tạo Trigger Bước 3: Chọn nút để kiểm tra câu lệnh T-SQL Bước 4: Chọn nút để thực câu lệnh Trigger - Dùng câu lệnh T-SQL Bước 1: Chọn nút New Query , xuất cửa sổ New Query Bước 2: Viết đoạn mã lệnh để tạo Trigger Bước 3: Chọn nút Bước 4: Chọn nút để kiểm tra câu lệnh T-SQL để thực câu lệnh tạo Trigger Hình 5.7 Kết tạo Trigger 179 Tập giảng SQL Server 2) Thay đổi trigger Cách 1: Chọn tên trigger/Chọn chuột phải/Chọn Modify Cách 2: Dùng câu lệnh Alter Trigger 3) Xóa trigger Cách 1: Chọn tên trigger/Chọn chuột phải/Chọn Delete/Chọn OK Cách 2: Dùng câu lệnh Drop Trigger 4) Làm trigger hiệu lực Cách 1: Chọn tên trigger/Chọn chuột phải/Chọn Disable Cách 2: Dùng câu lệnh 5) Làm trigger có hiệu lực Cách 1: Chọn tên trigger/Chọn chuột phải/Chọn Enable Cách 2: Dùng câu lệnh 180 ... động có độ xác từ -3 .4E+38 đến 3.40E+38 datetime Biễu diễn ngày Được lưu trữ số integer, chiếm byte ( 0 1- 0 1- 1753 to 3 1- 1 2-9 999) smalldatetime Biểu diễn ngày ( 0 1- 0 1- 1990 to 311 2-9 999) chiếm byte... giảng SQL Server STT Datepart Abbreviation Values Hour Hh 0-2 3 Minute Mi 0-5 9 Second Ss 0-5 9 Millisecond Ms 0-9 99 Day of Year Dy 1- 366 Day Dd 1- 31 Week Wk 1- 53 Weekday Dw 1- 7 Month Mm 1- 12 10 Quarter... 10 Hình 1. 14 Cấu hình Server 11 Hình 1. 15 Cấu hình Database Engine 12 Hình 1. 16 Cấu hình dịch vụ Report 12 Hình 1. 17 Xác định phản hồi 13 Hình 1. 18

Ngày đăng: 08/06/2021, 14:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w