forked from tuanhtvn/DBMS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DB_Final.sql
2439 lines (2308 loc) · 74.2 KB
/
DB_Final.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
-- Tạo CSDL
CREATE DATABASE QLNS
GO
-- Sử dụng CSDL
USE QLNS
GO
------------------------------------ Thực hiện tạo bảng -----------------------------------------------
--Bảng Nhân viên
CREATE TABLE NhanVien
(
NhanVien_ID INT IDENTITY(1,1) PRIMARY KEY,
NhanVien_HoTen NVARCHAR(50),
NhanVien_SDT CHAR(10),
NhanVien_CCCD CHAR(12),
NhanVien_GioiTinh NVARCHAR(3),
NhanVien_HinhAnh IMAGE,
NhanVien_DiaChi NVARCHAR(50),
NhanVien_NgaySinh DATE,
NhanVien_ChucVu INT,
NhanVien_PhongBan INT,
NhanVien_TrangThaiXoa BIT DEFAULT 0-- UPDATE
);
GO
--Bảng Ứng lương
CREATE TABLE UngLuong
(
UngLuong_ID INT PRIMARY KEY,
UngLuong_Ngay INT,
UngLuong_SoTien FLOAT,
UngLuong_TrangThaiXoa BIT,
UngLuong_GhiChu NVARCHAR(50),
UngLuong_NhanVien INT,
UngLuong_KyCong INT
);
GO
-- Bảng Hợp đồng
CREATE TABLE HopDong
(
HopDong_SoHD INT IDENTITY(1,1) PRIMARY KEY,
HopDong_NgayBatDau DATE,
HopDong_NgayKetThuc DATE,
HopDong_LanKy INT,
HopDong_NoiDung NVARCHAR(50),
HopDong_LuongCanBan FLOAT,
HopDong_HeSoLuong INT,
HopDong_NhanVien INT UNIQUE
);
GO
-- Bảng Hệ số lương
CREATE TABLE HeSoLuong
(
HeSoLuong_ID INT IDENTITY(1,1) PRIMARY KEY,
HeSoLuong_Ten NVARCHAR(10) NOT NULL,
HeSoLuong_GiaTri FLOAT
);
GO
-- Bảng Kỳ Công
CREATE TABLE KyCong
(
KyCong_MaKyCong INT IDENTITY(1, 1) PRIMARY KEY,
KyCong_Nam INT,
KyCong_Thang INT,
KyCong_SoNgayCong INT,
KyCong_TrangThaiXoa BIT
);
GO
-- Bảng KCCT
CREATE TABLE KyCongChiTiet
(
KyCongChiTiet_NhanVien INT,
KyCongChiTiet_KyCong INT,
KyCongChiTiet_NgayNghi INT,
KyCongChiTiet_CongChuNhat INT,
KyCongChiTiet_NgayCongThucTe INT,
CONSTRAINT PK_KyCongChiTiet PRIMARY KEY(KyCongChiTiet_NhanVien, KyCongChiTiet_KyCong)
);
GO
-- Bảng chấm công
CREATE TABLE ChamCong
(
ChamCong_ID INT IDENTITY(1,1) PRIMARY KEY,
ChamCong_Ngay INT,
ChamCong_GioChamCong VARCHAR(50),
ChamCong_NhanVien INT,
ChamCong_KyCong INT
);
GO
--Bảng Lương
CREATE TABLE BangLuong
(
BangLuong_NhanVien INT,
BangLuong_KyCong INT,
BangLuong_LuongNgayThuong FLOAT,
BangLuong_LuongNgayCN FLOAT,
BangLuong_TangCa FLOAT,
BangLuong_UngLuong FLOAT,
BangLuong_PhuCap FLOAT,
BangLuong_LuongNhanDuoc FLOAT,
BangLuong_ThucLanh FLOAT,
CONSTRAINT PK_BangLuong PRIMARY KEY(BangLuong_NhanVien, BangLuong_KyCong)
);
GO
-- Bảng loại tăng ca
CREATE TABLE LoaiTangCa
(
LoaiTangCa_ID INT PRIMARY KEY,
LoaiTangCa_TenLoai NVARCHAR(20),
LoaiTangCa_HeSo FLOAT
);
GO
-- Bảng tăng ca
CREATE TABLE TangCa
(
TangCa_ID INT IDENTITY(1,1) PRIMARY KEY,
TangCa_NgayTangCa INT,
TangCa_SoGio FLOAT,
TangCa_NhanVien INT,
TangCa_LoaiTangCa INT,
TangCa_KyCong INT
);
GO
-- Bảng chức vụ
CREATE TABLE ChucVu
(
ChucVu_ID INT PRIMARY KEY,
ChucVu_TenCV NVARCHAR(50)
);
GO
-- Bảng phòng ban
CREATE TABLE PhongBan
(
PhongBan_MaPB INT PRIMARY KEY,
PhongBan_TenPB NVARCHAR(50),
PhongBan_TruongPhong INT,
PhongBan_TG_NhanChuc DATE,
);
GO
-- Bảng tài khoản
CREATE TABLE TaiKhoan
(
TaiKhoan_SoTK VARCHAR(50) PRIMARY KEY,
TaiKhoan_MatKhau VARCHAR(32),
TaiKhoan_PhanQuyen BIT
);
GO
---------------------------------- Thực hiện tạo Ràng buộc khóa ngoại ----------------------------------
-- Bảng nhân viên
ALTER TABLE NhanVien
ADD CONSTRAINT FK_ChucVuNhanVien FOREIGN KEY(NhanVien_ChucVu) REFERENCES ChucVu(ChucVu_ID)ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE NhanVien
ADD CONSTRAINT FK_PhongBanNhanVien FOREIGN KEY(NhanVien_PhongBan) REFERENCES PhongBan(PhongBan_MaPB) ON DELETE SET NULL;
-- Bảng phòng ban
ALTER TABLE PhongBan
ADD CONSTRAINT FK_NhanVienPhongBan FOREIGN KEY(PhongBan_TruongPhong) REFERENCES NhanVien(NhanVien_ID) ON DELETE SET NULL;
-- Bảng Ứng lương
ALTER TABLE UngLuong
ADD CONSTRAINT FK_NhanVienUngLuong FOREIGN KEY(UngLuong_NhanVien) REFERENCES NhanVien(NhanVien_ID) ON DELETE SET NULL;
ALTER TABLE UngLuong
ADD CONSTRAINT FK_KyCongUngLuong FOREIGN KEY(UngLuong_KyCong) REFERENCES KyCong(KyCong_MaKyCong) ON DELETE SET NULL;
-- Bảng Hợp đồng
ALTER TABLE HopDong
ADD CONSTRAINT FK_HeSoLuongHopDong FOREIGN KEY(HopDong_HeSoLuong) REFERENCES HeSoLuong(HeSoLuong_ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE HopDong
ADD CONSTRAINT FK_NhanVienHopDong FOREIGN KEY(HopDong_NhanVien) REFERENCES NhanVien(NhanVien_ID) ON DELETE SET NULL;
-- Kỳ công chi tiết
ALTER TABLE KyCongChiTiet
ADD CONSTRAINT FK_NhanVienKyCongChiTiet FOREIGN KEY(KyCongChiTiet_NhanVien) REFERENCES NhanVien(NhanVien_ID) ON DELETE CASCADE;
ALTER TABLE KyCongChiTiet
ADD CONSTRAINT FK_KyCongKyCongChiTiet FOREIGN KEY(KyCongChiTiet_KyCong) REFERENCES KyCong(KyCong_MaKyCong) ON DELETE CASCADE;
-- Bảng Lương
ALTER TABLE BangLuong
ADD CONSTRAINT FK_NhanVienBangLuong FOREIGN KEY(BangLuong_NhanVien) REFERENCES NhanVien(NhanVien_ID) ON DELETE CASCADE;
ALTER TABLE BangLuong
ADD CONSTRAINT FK_KyCongBangLuong FOREIGN KEY(BangLuong_KyCong) REFERENCES KyCong(KyCong_MaKyCong) ON DELETE CASCADE;
-- Bảng Chấm công
ALTER TABLE ChamCong
ADD CONSTRAINT FK_NhanVienChamCong FOREIGN KEY(ChamCong_NhanVien) REFERENCES NhanVien(NhanVien_ID) ON DELETE CASCADE;
ALTER TABLE ChamCong
ADD CONSTRAINT FK_KyCongChamCong FOREIGN KEY(ChamCong_KyCong) REFERENCES KyCong(KyCong_MaKyCong) ON DELETE CASCADE;
-- Bảng tăng ca
ALTER TABLE TangCa
ADD CONSTRAINT FK_NhanVienTangCa FOREIGN KEY(TangCa_NhanVien) REFERENCES NhanVien(NhanVien_ID) ON DELETE CASCADE;
ALTER TABLE TangCa
ADD CONSTRAINT FK_LoaiTangCaTangCa FOREIGN KEY(TangCa_LoaiTangCa) REFERENCES LoaiTangCa(LoaiTangCa_ID) ON DELETE SET NULL ON UPDATE CASCADE;
ALTER TABLE TangCa
ADD CONSTRAINT FK_KyCongTangCa FOREIGN KEY(TangCa_KyCong) REFERENCES KyCong(KyCong_MaKyCong) ON DELETE CASCADE;
GO
-------------------------------Thực hiện tạo view---------------------------------------------
-- Bảng Ứng lương
CREATE VIEW DS_UngLuong
AS
SELECT UngLuong_ID, UngLuong_Ngay, UngLuong_NhanVien, UngLuong_SoTien, UngLuong_GhiChu
FROM UngLuong
WHERE UngLuong_TrangThaiXoa = 0
GO
-- Bảng PhongBan
CREATE VIEW DS_Phongban
AS
SELECT PhongBan_MaPB, PhongBan_TenPB
FROM PhongBan
GO
-- Bảng Kỳ Công
CREATE VIEW DS_KyCong
AS
SELECT KyCong_MaKyCong , KyCong_Nam , KyCong_Thang , KyCong_SoNgayCong
FROM KyCong
WHERE KyCong_TrangThaiXoa = 0
GO
-- Bảng Châm Công
CREATE VIEW View_ChamCong
AS
SELECT ChamCong_ID, ChamCong_Ngay , ChamCong_NhanVien, ChamCong_KyCong
FROM ChamCong
GO
-- Bang Chuc vu
CREATE VIEW v_ChucVu
AS
SELECT *
FROM dbo.ChucVu;
GO
-- BẢNG NHÂN VIÊN CÓ TĂNG CA
CREATE VIEW v_NhanVienCoTangCa
AS
SELECT *
FROM dbo.TangCa
WHERE TangCa_NgayTangCa IS NOT NULL
GO
-- BẢNG LOẠI TĂNG CA
CREATE VIEW v_LoaiTangCa
AS
SELECT *
FROM dbo.LoaiTangCa;
GO
-- Bảng Nhân Viên
CREATE VIEW v_NhanVien
AS
SELECT *
FROM NhanVien
WHERE NhanVien_TrangThaiXoa = 0
GO
-- Bảng Hợp đồng
CREATE VIEW v_HopDong
AS
SELECT *
FROM HopDong
GO
-- Bảng Hệ số lương
CREATE VIEW v_HSL
AS
SELECT *
FROM HeSoLuong
GO
-- Bảng tài khoản
CREATE VIEW v_TaiKhoan
AS
SELECT *
FROM TaiKhoan
GO
------------------------------------------- Trigger ----------------------------------------
-- Bảng Ứng lương
CREATE TRIGGER TGR_UngLuong
ON UngLuong
INSTEAD OF INSERT
AS
BEGIN
DECLARE @maxid int = 0
SELECT @maxid = MAX(UngLuong_ID)
FROM UngLuong
IF @maxid IS NULL SET @maxid = 1;
ELSE SET @maxid = @maxid + 1;
INSERT INTO UngLuong
(UngLuong_ID)
VALUES(@maxid)
UPDATE UngLuong
SET UngLuong_Ngay = i.UngLuong_Ngay, UngLuong_SoTien=i.UngLuong_SoTien, UngLuong_TrangThaiXoa=i.UngLuong_TrangThaiXoa, UngLuong_GhiChu=i.UngLuong_GhiChu, UngLuong_NhanVien=i.UngLuong_NhanVien, UngLuong_KyCong=i.UngLuong_KyCong
FROM inserted i
WHERE UngLuong.UngLuong_ID = @maxid
PRINT N'Đã thêm ứng lương có mã là: '+ CAST(@maxid AS VARCHAR)
END;
GO
-- Bảng PhongBan
CREATE TRIGGER TGR_PhongBan
On PhongBan
INSTEAD OF INSERT
AS
BEGIN
DECLARE @maxid int = 0
SELECT @maxid = MAX(PhongBan_MaPB)
FROM PhongBan
IF @maxid IS NULL SET @maxid = 1
ELSE SET @maxid = @maxid + 1
INSERT INTO PhongBan
(PhongBan_MaPB)
VALUES
(@maxid)
UPDATE PhongBan
SET PhongBan_TenPB = i.PhongBan_TenPB, PhongBan_TG_NhanChuc = i.PhongBan_TG_NhanChuc, PhongBan_TruongPhong = i.PhongBan_TruongPhong
FROM inserted i
WHERE PhongBan.PhongBan_MaPB = @maxid
PRINT N'Đã thêm phòng ban có mã là: '+ CAST(@maxid AS VARCHAR)
END;
GO
-- Bảng ChucVu
CREATE TRIGGER TGR_ChucVu
ON ChucVu
INSTEAD OF INSERT
AS
BEGIN
DECLARE @maxid int = 0
SELECT @maxid = MAX(ChucVu_ID)
FROM ChucVu
IF @maxid IS NULL SET @maxid = 1
ELSE SET @maxid = @maxid + 1
INSERT INTO ChucVu
(ChucVu_ID, ChucVu_TenCV)
SELECT
ISNULL(i.ChucVu_ID, @maxid),
i.ChucVu_TenCV
FROM inserted i
END;
GO
-- Trigger tăng ID tự động cho bảng LoaiTangCa
CREATE TRIGGER TGR_LoaiTangCa
ON LoaiTangCa
INSTEAD OF INSERT
AS
BEGIN
DECLARE @maxid int = 0
SELECT @maxid = MAX(LoaiTangCa_ID)
FROM LoaiTangCa
IF @maxid IS NULL SET @maxid = 1
ELSE SET @maxid = @maxid + 1
INSERT INTO LoaiTangCa
(LoaiTangCa_ID, LoaiTangCa_TenLoai, LoaiTangCa_HeSo)
SELECT
IIF(i.LoaiTangCa_ID IS NULL, @maxid, i.LoaiTangCa_ID),
i.LoaiTangCa_TenLoai,
i.LoaiTangCa_HeSo
FROM inserted i
END;
GO
-- Bảng TaiKhoan
CREATE TRIGGER TGR_TaiKhoan
On TaiKhoan
INSTEAD OF INSERT
AS
BEGIN
DECLARE @checkid int
SELECT @checkid = i.TaiKhoan_SoTK
FROM inserted i
IF NOT EXISTS(SELECT *
FROM TaiKhoan
WHERE TaiKhoan_SoTK = @checkid)
INSERT INTO TaiKhoan
(TaiKhoan_SoTK, TaiKhoan_MatKhau, TaiKhoan_PhanQuyen)
SELECT i.TaiKhoan_SoTK, (CONVERT(VARCHAR(32), HashBytes('MD5', i.TaiKhoan_MatKhau), 2)), i.TaiKhoan_PhanQuyen
FROM inserted i
ELSE
PRINT N'Số tài khoản: '+ CAST(@checkid AS VARCHAR)+N' đã tồn tại.'
END;
GO
-- Kiểm tra xem tháng được truyền vào có đúng không
CREATE TRIGGER trg_Insert_KyCong
ON KyCong
AFTER INSERT, UPDATE
AS
BEGIN
IF EXISTS (SELECT 1
FROM inserted
WHERE inserted.KyCong_Thang < 1 OR inserted.KyCong_Thang > 12)
BEGIN
RAISERROR('Giá trị của KyCong_Thang phải nằm trong khoảng từ 1 đến 12', 16, 1)
ROLLBACK TRANSACTION
END
END
GO
--kiểm tra xem Ngày được truyền vào có đúng không
CREATE TRIGGER [TenTrigger]
ON [dbo].[ChamCong]
AFTER INSERT, UPDATE
AS
BEGIN
IF EXISTS (
SELECT *
FROM inserted
WHERE ChamCong_Ngay < 1 OR ChamCong_Ngay > 31
)
BEGIN
RAISERROR('Ngày chấm công không hợp lệ', 16, 1)
ROLLBACK TRANSACTION
END
END
GO
CREATE TRIGGER ThemNVTangCa
ON dbo.TangCa
FOR INSERT
AS
BEGIN
DECLARE @day INT =0;
SELECT @day = TangCa_NgayTangCa
FROM dbo.TangCa
IF(@day <=0 or @day >31)
ROLLBACK TRAN
END
GO
------------------------------------------- Data ------------------------------------------
--Bảng Hệ số lương
INSERT INTO HeSoLuong
(HeSoLuong_Ten, HeSoLuong_GiaTri)
VALUES
(N'Bậc 1', 1.07),
(N'Bậc 2', 1.13),
(N'Bậc 3', 1.19),
(N'Bậc 4', 1.42);
GO
--Bảng Nhân Viên
INSERT INTO NhanVien
(
NhanVien_HoTen, NhanVien_SDT,NhanVien_CCCD,
NhanVien_GioiTinh, NhanVien_HinhAnh, NhanVien_DiaChi, NhanVien_NgaySinh,
NhanVien_ChucVu, NhanVien_PhongBan)
VALUES
(N'Nguyễn Văn Phát', '0337079124', '049000123233', N'Nam', NULL, N'44/2 đường số 3, Linh Tây, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N'Giám đốc' ), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Huỳnh Văn Bá', '0313139871', '003001943441', N'Nam', NULL, N'13 Luỹ Bán Bích, Tân Phú, TPHCM' , '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N'Nhân viên' ), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Nguyễn Thị Hà', '0312888122', '000321212932', N'Nữ', NULL, N'91 Tam Hà, Tam Phú, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Nguyễn Thị Hạ', '0312834122', '000398912932', N'Nữ', NULL, N'3 Tam Hà, Tam Phú, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Huỳnh Văn Ba', '0313139871', '003001943441', N'Nam', NULL, N'137 Luỹ Bán Bích, Tân Phú, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Huỳnh Văn Vũ', '0319199871', '003111943441', N'Nam', NULL, N'198 Luỹ Bán Bích, Tân Phú, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Nguyễn Văn Khánh', '0324079124', '049008923233', N'Nam', NULL, N'44/7 đường số 3, Linh Tây, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Nguyễn Văn Ba', '0339079124', '049000912233', N'Nam', NULL, N'48/2 đường số 9, Linh Trung, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Nguyễn Công Huynh', '0337079192', '049000129233', N'Nam', NULL, N'42/2 đường số 3, Linh Tây, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Nguyễn Phát Tài' , '0127079124', '049120123233', N'Nam', NULL, N'41/4 đường số 1, Linh Tây, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Lý Tiến Thành', '0337098124', '049000192233', N'Nam', NULL, N'14/2 đường số 8, Linh Chiểu, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Mai Thành Chung', '0391079124', '049000913233', N'Nam', NULL, N'19 đường số 4, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Mai Trọng Khánh', '0891079124', '049111913233', N'Nam', NULL, N'29 đường số 4, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Quách Đình Trường Thi', '0891079124', '049000913233', N'Nam', NULL, N'111 đường số 4, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Quách Diệu Khánh', '0312079124', '049009013233', N'Nam', NULL, N'90 đường số 2, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Phan Thanh Lâm', '0399019124', '049123913233', N'Nam', NULL, N'19 đường số 9, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Đinh Bảo Long', '0391123124', '049000192233', N'Nam', NULL, N'19 đường số 2, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Huỳnh Thị My', '0312179124', '049002113233', N'Nữ', NULL, N'122 đường số 9, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Võ Thị Phước', '0123079124', '049000913233', N'Nữ', NULL, N'119/2 đường số 9, Linh Đông, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính')),
(N'Mai Hoàng Hương', '0123900124', '073000913233', N'Nữ', NULL, N'18/2 Phạm Văn Đồng, Linh Trung, Thủ Đức, TPHCM', '1/1/2001', (SELECT ChucVu_ID
FROM CHUCVU
WHERE ChucVu_TenCV =N' Nhân viên'), (SELECT PhongBan_MaPB
FROM PhongBan
WHERE PhongBan_TenPB=N'Phòng Hành Chính'));
GO
--Bảng Hợp đồng
INSERT INTO HopDong
(HopDong_NgayBatDau, HopDong_NgayKetThuc,
HopDong_LanKy, HopDong_NoiDung, HopDong_LuongCanBan, HopDong_HeSoLuong, HopDong_NhanVien)
VALUES
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen=N'Nguyễn Văn Phát')),
('3/1/2018', '3/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Văn Bá')),
('3/1/2019', '3/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Thị Hà')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Thị Hạ')),
('11/1/2019', '1/11/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Văn Ba')),
('11/1/2019', '1/11/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Văn Vũ')),
('12/1/2019', '12/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Văn Khánh')),
('12/1/2019', '12/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Văn Ba')),
('12/1/2019', '12/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Công Huynh')),
('12/1/2019', '12/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Phát Tài')),
('11/1/2019', '11/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Lý Tiến Thành')),
('12/1/2019', '12/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Mai Thành Chung')),
('11/1/2019', '11/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Mai Trọng Khánh')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Quách Đình Trường Thi')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Quách Diệu Khánh')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Phan Thanh Lâm')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Đinh Bảo Long')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Thị My')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Võ Thị Phước')),
('1/1/2019', '1/1/2021', 1, 'A', 3.250, (SELECT HeSoLuong_ID
FROM HeSoLuong
WHERE HeSoLuong_Ten=N'Bậc 1'), (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Mai Hoàng Hương'));
GO
--- Kỳ Công
INSERT INTO KyCong
(KyCong_Nam, KyCong_Thang, KyCong_SoNgayCong, KyCong_TrangThaiXoa)
VALUES
(2022, 6, 26, 0),
(2022, 7, 26, 0),
(2022, 8, 27, 0),
(2022, 9, 26, 0),
(2022, 10, 26, 0),
(2022, 11, 26, 0),
(2022, 12, 27, 0),
(2023, 1, 26, 0),
(2023, 2, 24, 0),
(2023, 3, 27, 0),
(2023, 4, 25, 0),
(2023, 5, 27, 0);
GO
-- Bảng loại tăng ca
INSERT INTO dbo.LoaiTangCa
(
LoaiTangCa_ID,
LoaiTangCa_TenLoai,
LoaiTangCa_HeSo
)
VALUES
( 1, -- LoaiTangCa_ID - int
N'Ngày Nghỉ', -- LoaiTangCa_TenLoai - nvarchar(20)
2 -- LoaiTangCa_HeSo - float
),
( 2, -- LoaiTangCa_ID - int
N'Ngày Lễ', -- LoaiTangCa_TenLoai - nvarchar(20)
3 -- LoaiTangCa_HeSo - float
),
( 3, -- LoaiTangCa_ID - int
N'Ca Tối', -- LoaiTangCa_TenLoai - nvarchar(20)
1.5 -- LoaiTangCa_HeSo - float
)
GO
-- Bảng phòng ban
INSERT INTO PhongBan
(PhongBan_TenPB, PhongBan_TruongPhong, PhongBan_TG_NhanChuc)
VALUES
(N'Phòng Hành Chính', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Văn Vũ'), '2020-5-22');
INSERT INTO PhongBan
(PhongBan_TenPB, PhongBan_TruongPhong, PhongBan_TG_NhanChuc)
VALUES
(N'Phòng Tài chính Kế toán', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Thị My'), '2022-6-19');
INSERT INTO PhongBan
(PhongBan_TenPB, PhongBan_TruongPhong, PhongBan_TG_NhanChuc)
VALUES
(N'Phòng Kế hoạch Kinh doanh', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Mai Hoàng Hương'), '2021-1-1');
GO
-- Bảng ứng lương
INSERT INTO UngLuong
(UngLuong_Ngay, UngLuong_SoTien, UngLuong_TrangThaiXoa, UngLuong_GhiChu, UngLuong_NhanVien, UngLuong_KyCong)
VALUES
(1, 2500.0, 'FALSE', N'Ứng lương đầu kỳ', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen=N'Nguyễn Văn Phát'), (SELECT KyCong_MaKyCong
FROM KyCong
WHERE KyCong_Nam = 2022 AND KyCong_Thang = 6));
INSERT INTO UngLuong
(UngLuong_Ngay, UngLuong_SoTien, UngLuong_TrangThaiXoa, UngLuong_GhiChu, UngLuong_NhanVien, UngLuong_KyCong)
VALUES
(1, 500.0, 'FALSE', N'Ứng lương đầu kỳ', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Văn Bá'), (SELECT KyCong_MaKyCong
FROM KyCong
WHERE KyCong_Nam = 2022 AND KyCong_Thang = 7));
INSERT INTO UngLuong
(UngLuong_Ngay, UngLuong_SoTien, UngLuong_TrangThaiXoa, UngLuong_GhiChu, UngLuong_NhanVien, UngLuong_KyCong)
VALUES
(1, 200.0, 'FALSE', N'Ứng lương đầu kỳ', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Thị Hà'), (SELECT KyCong_MaKyCong
FROM KyCong
WHERE KyCong_Nam = 2022 AND KyCong_Thang = 8));
INSERT INTO UngLuong
(UngLuong_Ngay, UngLuong_SoTien, UngLuong_TrangThaiXoa, UngLuong_GhiChu, UngLuong_NhanVien, UngLuong_KyCong)
VALUES
(15, 2000.0, 'FALSE', N'Ứng lương giữa kỳ', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Nguyễn Thị Hạ'), (SELECT KyCong_MaKyCong
FROM KyCong
WHERE KyCong_Nam = 2022 AND KyCong_Thang = 9));
INSERT INTO UngLuong
(UngLuong_Ngay, UngLuong_SoTien, UngLuong_TrangThaiXoa, UngLuong_GhiChu, UngLuong_NhanVien, UngLuong_KyCong)
VALUES
(15, 2500.0, 'TRUE', N'Ứng lương giữa kỳ', (SELECT NhanVien_ID
FROM NhanVien
WHERE NhanVien_HoTen= N'Huỳnh Văn Ba'), (SELECT KyCong_MaKyCong
FROM KyCong
WHERE KyCong_Nam = 2022 AND KyCong_Thang = 10));
GO
--Bảng Tăng Ca--
INSERT INTO dbo.TangCa
(
TangCa_NgayTangCa,
TangCa_SoGio,
TangCa_NhanVien,
TangCa_LoaiTangCa,
TangCa_KyCong
)
VALUES
( 13,
2,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Nguyễn Văn Phát'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ngày Nghỉ'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 6 AND KyCong_Nam=2022)
),
( 15,
4,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Huỳnh Văn Bá'),
2,
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 7 AND KyCong_Nam=2022)
),
( 10,
1,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Nguyễn Thị Hà'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ca Tối'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 8 AND KyCong_Nam=2022)
),
( 15,
2.5,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Nguyễn Thị Hạ'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ngày Lễ'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 9 AND KyCong_Nam=2022)
),
( 20,
4,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Huỳnh Văn Vũ'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ngày Nghỉ'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 10 AND KyCong_Nam=2022)
),
( 28,
1.5,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Nguyễn Văn Khánh'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ca Tối'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 11 AND KyCong_Nam=2022)
),
( 1,
3,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Nguyễn Văn Ba'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ngày Lễ'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 12 AND KyCong_Nam=2022)
),
( 10,
0,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Nguyễn Công Huynh'),
1,
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 1 AND KyCong_Nam=2023)
),
( 13,
3.5,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Lý Tiến Thành'),
2,
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 3 AND KyCong_Nam=2023)
),
( 21,
3,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Mai Thành Chung'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ca Tối'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 4 AND KyCong_Nam=2023)
),
( 11,
3.5,
(SELECT NhanVien_ID
FROM dbo.NhanVien
WHERE NhanVien_HoTen = N'Mai Trọng Khánh'),
(SELECT LoaiTangCa_ID
FROM dbo.LoaiTangCa
WHERE LoaiTangCa_TenLoai = N'Ngày Lễ'),
(SELECT KyCong_MaKyCong
FROM dbo.KyCong
WHERE KyCong_Thang = 5 AND KyCong_Nam=2023)
)
GO
--Bảng Chức Vụ--
INSERT INTO dbo.ChucVu
(
ChucVu_ID,
ChucVu_TenCV
)
VALUES
( 1, -- ChucVu_ID - int
N'Giám Đốc' -- ChucVu_TenCV - nvarchar(50)
),
( 2, -- ChucVu_ID - int
N'Phó Giám Đốc Hành Chính' -- ChucVu_TenCV - nvarchar(50)
),
( 3, -- ChucVu_ID - int
N'Phó Giám Đốc Kinh Doanh' -- ChucVu_TenCV - nvarchar(50)
),
( 4, -- ChucVu_ID - int
N'Trưởng Phòng Hành Chính' -- ChucVu_TenCV - nvarchar(50)
),
( 5, -- ChucVu_ID - int
N'Trưởng Phòng Tài Chính' -- ChucVu_TenCV - nvarchar(50)
),
( 6, -- ChucVu_ID - int
N'Trưởng Phòng Kế Hoạch' -- ChucVu_TenCV - nvarchar(50)
),
( 7, -- ChucVu_ID - int
N'Trưởng Nhóm' -- ChucVu_TenCV - nvarchar(50)
),
( 8, -- ChucVu_ID - int
N'Nhân Viên' -- ChucVu_TenCV - nvarchar(50)
)
GO
-- ============================================ HÀM VÀ THỦ TỤC ====================================================
-- KyCong
CREATE PROC ThemKyCong(@Nam VARCHAR(5),
@Thang VARCHAR(2),
@KetQua INT OUTPUT)
AS
BEGIN
BEGIN TRANSACTION
BEGIN TRY
INSERT INTO KyCong
(KyCong_Nam, KyCong_Thang, KyCong_SoNgayCong, KyCong_TrangThaiXoa)
VALUES
(@Nam, @Thang, dbo.SoNgayCong(@Nam, @Thang), 0)
COMMIT TRANSACTION
SELECT @KetQua = KyCong_MaKyCong
FROM KyCong
WHERE KyCong_Nam = @Nam AND KyCong_Thang = @Thang
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION
END
SET @KetQua = -1;
THROW 51000,'Loi Them Ky Cong',1;
END CATCH
END
GO
CREATE PROC CapNhatKyCong(@MaKyCong INT,
@Nam INT,
@Thang INT,
@KetQua INT OUTPUT)
AS
BEGIN
BEGIN TRANSACTION
BEGIN TRY
UPDATE KyCong SET KyCong_Nam = @Nam, KyCong_Thang = @Thang WHERE KyCong_MaKyCong = @MaKyCong
COMMIT TRANSACTION
SET @KetQua = 1
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION
END
SET @KetQua = 0;
THROW 51000,'Loi Cap Nhat Ky Cong',1;
END CATCH
END
GO
CREATE PROC CapNhatTrangThaiKyCong(@Nam VARCHAR(5),
@Thang VARCHAR(2),
@KetQua INT OUTPUT)
AS
BEGIN
BEGIN TRANSACTION