IMG-LOGO
×

Giáo Trình Môn Học

Khoá học lập trình SQL

Kiến Thức Core SQL Server

[Video] Hướng dẫn cách xác định kiểu dữ liệu, primary key, foreign key trong SQL - My SQL - SQL Server [Video] Hướng dẫn thao tác nhiểu bảng - select - multi table - join, inner join trong SQL Server [Video] Hướng dẫn phân tích CSDL - phân tích bảng, column trong bản - Học lập trình SQL, SQL Server [Video] Hướng dẫn tìm hiểu create, alter , insert table và bản chất primary key, foreign key - SQL Server [Video] Hướng dẫn tìm hiểu select, and, in, like, not in,group by .. having, order by asc, desc - SQL Server [Video] Quản lý sinh viên (create, alter, update, insert, select) - Lập trình SQL Server

View SQL Server

[Video] Hướng dẫn tìm hiểu view trong SQL Server Bài Giảng: Hướng dẫn tìm hiểu view + proc trong SQL - Lập trình SQL Server

Store & Procedure

[Video] Hướng dẫn tìm hiểu proc procedure trong SQL Server - Lập trình SQL Server, MySQL Bài Giảng: Xây dự hệ thống đưa đón học sinh bằng xe bus của Trường Học - Lập trình SQL Server [Video] Xây dựng CSDL quản lý điểm danh aptech - Lập trình SQL Server/MySQL

Trigger

[Video] Học Trigger qua ví dụ - quản lý nhà trên phố - Lập trình SQL Server [Video] Hướng dẫn học trigger qua bài quản lý điểm danh Aptech - Lập trình SQL Server [Video] Bài tập - Quản lý nhân khẩu - Lập trình SQL Server - MySQL




Trang Chủ SQL Server/MySQL [Share Code] Tìm hiểu về Trigger Insert & Update & Delete - Lập trình SQL Server

[Share Code] Tìm hiểu về Trigger Insert & Update & Delete - Lập trình SQL Server

by GokiSoft.com - 09:22 29/03/2021 1,672 Lượt Xem



use C2010G

select * from Student
select * from Student where rollno like '%00%'

select * from Student, Marks
where Student.rollno = Marks.rollno

select * from orders

create clustered index index_order_no on orders (ord_no)

drop index index_order_no on orders

-------- Trigger
select * from Student

--- insert, update, delete => table => kich hoat khoi code len.
----- Moi mot trigger => gan voi 1 query insert, update, delete cua 1 bang (table)
----- Chi dc phep insert sinh vien co gioi tinh Nam | Nu
insert into Student(rollno, fullname, email, address, brithday, gender)
values
('R004', 'TRAN VAN D', '[email protected]', 'ninh binh', '1996-06-02', 'OKOK')

insert into Student(rollno, fullname, email, address, brithday, gender)
values
('R002', 'TRAN VAN D', '[email protected]', 'ninh binh', '1996-06-02', 'Nam')

delete from Student where rollno = 'R004'

alter table Student
add constraint check_gender check (gender = 'Nam' or gender = 'Nu')

alter table Student
add constraint check_gender check (gender in ('Nam', 'Nu'))

alter table Student
drop constraint check_gender

-- Trigger Insert
create trigger trigger_insert_check_gender on Student
for insert
as
begin
	-- Khoi code se duoc kich hoat khi cau lenh insert tren bang Student duoc thu hien
	if (select count(*) from inserted where gender not in ('Nam', 'Nu')) > 0
	begin
		print N'Khong dc insert ban ghi co gender khac Nam|Nu'
		rollback transaction
	end
end

update Student set gender = 'OKOK' where rollno = 'R003'

select * from Student

alter trigger trigger_update_check_gender on Student
for update
as
begin
	print N'Goi toi trigger update check gender'
	-- Khoi code se duoc kich hoat khi cau lenh insert tren bang Student duoc thu hien
	if (select count(*) from inserted where gender not in ('Nam', 'Nu')) > 0
	begin
		print N'Khong dc update ban ghi co gender khac Nam|Nu'
		rollback transaction
	end
end

alter trigger trigger_not_update_rollno on Student
for update
as
begin
	print N'Goi toi trigger not update rollno'
	if update(rollno)
	begin
		print N'Not update rollno'
		rollback transaction
	end
end

create trigger trigger_okok on Student
for update
as
begin
	print N'trigger okok'
	rollback transaction
end

drop trigger trigger_okok

update Student set fullname = 'R007' where rollno = 'R001'

select * from Student

---- Chan khong cho phep xoa record: R001
delete from Student where rollno = 'R004'
delete from Student where rollno = 'R001'

create trigger trigger_not_delete_R001 on Student
for delete
as
begin
	if (select count(*) from deleted where rollno = 'R001') > 0
	begin
		print N'Not delete rollno: R001'
		rollback transaction
	end
end

---- instead of delete
alter table Marks
add constraint fk_student_marks foreign key (rollno) references Student(rollno)

select * from Student
select * from Marks
select * from Subject

delete from Marks where rollno = 'R002'
delete from Student where rollno = 'R002'

create trigger trigger_instead_of_student on Student
instead of delete
as
begin
	delete from Marks where rollno in (select rollno from deleted)
	delete from Student where rollno in (select rollno from deleted)
end

delete from Student where rollno = 'R002'




Bình luận



Chia sẻ từ lớp học

Đã sao chép!!!