30/09/2018, 21:40

Trigger cập nhật cột thành tiền

E có bảng chi tiết hóa đơn như trong hình và cái trigger cập nhật cột thành tiền để khi người dùng nhập xong ô số lượng thì thành tiền tự cập nhật = soluong nhân dongia.Lúc e execute thì k báo lỗi nhưng khi nhập thử xem có cập nhật không thì lại không cập nhật.Mọi người xem hộ e với.Thank

USE [DETAI]
GO
/****** Object:  Trigger [dbo].[trg_Insert_Upate_Soluong]    Script Date: 6/19/2016 12:42:52 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[trg_Insert_Upate_Soluong]
on [dbo].[chi_tiet_hoa_don]
for insert, update
as
begin
	declare @old_sl int , @new_sl int , @code nvarchar(50)
	select @old_sl = deleted.soluong
	from deleted
	select @new_sl = inserted.soluong , @code = inserted.masp
	from inserted
	if @old_sl <> @new_sl
	begin
		update chi_tiet_hoa_don
		set thanhtien = @new_sl * san_pham.dongia
		from san_pham, chi_tiet_hoa_don
		where san_pham.masp = @code
		and san_pham.masp = chi_tiet_hoa_don.masp
	end
end
phạm văn nguyên viết 23:52 ngày 30/09/2018

Mọi người giúp e cái

Tý Tèo viết 23:53 ngày 30/09/2018

Bạn thử thế này xem
> GO

    ALTER trigger trg_Insert_Upate_Soluong
    on chi_tiet_hoa_don
    for insert, update
    as
    if update(soluong)
    begin
    	update 
    		chi_tiet_hoa_don
    	set 
    		thanhtien = inserted.soluong * san_pham.dongia
    	from 
    		inserted I,
    		san_pham SP, 
    		chi_tiet_hoa_don CTHD
    	where 
    		(SP.masp = I.masp)
    		and (SP.masp = CTHD.masp)
    end
Bài liên quan
0