PDA

View Full Version : Giúp mình phần trigger với



tantripy
05-06-2011, 00:02
Giả sử mình có một bảng hàng hóa như sau:

Table Goods
GoodsCode
GoodsName
RegisteredUser
UpdatedUser

Và bây giờ mình muốn tạo bảng Log để lưu lại thông tin update hoặc insert đối với table Goods.
Tình hình là mình muốn lấy thông tin của thằng User. Nếu như Update thì mình sẽ lấy thằng UpdatedUser để ghi vào bảng Log. Còn khi Insert thì mình sẽ lấy từ thằng RegisteredUser. Như thế thì trong Trigger mình phải dùng câu lệnh như thế nào để thực hiện việc trên :( Thanks mọi người nhiều nhé :(

Làm thế nào để giải quyết vấn đề này :( Mọi người giúp mình với.

[=========> Bổ sung bài viết <=========]



CREATE TRIGGER tr_Goods ON Goods FOR INSERT, UPDATE, DELETE
AS
DECLARE @UserID int

-- date
SELECT @UserID = ????


Mình không biết gán @UserID như thế nào để phù hợp với yêu cầu trên :(

Red Devilic
06-06-2011, 11:31
Ko nhất thiết phải sử dụng Trigger.
Nếu dùng Trigger thì chỉ bắt được User của SQL Server mà bạn sử dụng để log in vào DB mà thôi. Cái phần username trong chuỗi kết nối của bạn ấy.

Còn UserName bạn tự định nghĩa bên trong DB thì làm sao SQL Server biết để ghi log cho bạn được :)

Tốt nhất là với các thao tác INS, UPD hay DEL, bạn hãy sử dụng Stored Procedure. Trog Stored đó, ngoài phần thao tác với dữ liệu chính, phần thứ 2 là ghi log. @UserID sẽ là tham số truyền vào.