Hỏi về cú pháp Trigger

Create Trigger tr_SuaCTHD On Chi_tiet_HoaDon
For Update As
Declare @D int
Select @D = Count(*)
From sach, DELETED, INSERTED
Where sach.ma_sach = DELETED.ma_sach
      And sach.ma_sach = INSERTED.ma_sach 
      And sach.So_luong_ton + deleted.so_luong - inserted.so_luong <= 100

if (@D > 100 )
 Begin
   Print N'Không đủ sách để bán'
   RollBack Tran
   Return
 End

Cái phần này dùng để làm gì vậy mọi người

Declare @D int
Select @D = Count(*)

Khai báo biến @D kiểu int và gán giá trị cho biến @D. Câu lệnh select trả về kết quả là 1 số kiểu int sau đó gán cho @D.

2 Likes

Anh ơi nó bị sao vậy ạ

Mấy cái “bảng” đó trong trigger mới có.

2 Likes

ủa bạn ơi rồi sao sử dụng được bảng này

bạn ơi,mình sử dụng được update kèm trigger rồi nhưng sao

For Update As
Declare @D int
Select @D = sach.So_luong_ton + deleted.so_luong - inserted.so_luong
From sach, DELETED, INSERTED
Where sach.ma_sach = DELETED.ma_sach
      And sach.ma_sach = INSERTED.ma_sach 
      And sach.So_luong_ton + deleted.so_luong - inserted.so_luong <= 100
			
if (sach.So_luong_ton > 100 )
	Begin
		Print N'Không đủ sách để bán';
		RollBack Tran;
		Return;
	End
 
Update sach Set So_luong_ton = So_luong_ton + deleted.so_luong - inserted.so_luong
from sach,deleted,inserted
Where sach.ma_sach = DELETED.ma_sach And sach.ma_sach = INSERTED.ma_sach

câu này không in ra Print N’Không đủ sách để bán’;

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?