0
我創建了一個觸發,我想知道的,如果有一種方法來找出誰做了記錄的刪除?觸發器從刪除選擇..找到誰刪除?
當我使用SUSER_NAME()在觸發或者USER_NAME(),甚至用戶,我只得到了SQL登錄ID。該觸發器正在從另一個可以自定義的.net後端軟件激活。
USE JM_SB
GO
ALTER TRIGGER Sales_Update
ON Sales
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Action VARCHAR(30)
DECLARE @UNAME VARCHAR(30)
IF UPDATE(PartGroupID)
BEGIN
SET @Action = 'Updated Part Group'
/* All this does is get dbo */
Set @UNAME = (Select USER From Deleted)
INSERT INTO Sales_AuditTrail(Action, SalesID, OldValue,
NewValue, SalesDivision, UpdateDate, UpdatedUser)
SELECT @Action, i.SalesID, d.PartGroupID, i.PartGroupID,
i.SalesDivision, Current_Timestamp As UpdateDate, @UNAME
FROM Inserted i
INNER JOIN Deleted d ON i.SalesID = d.SalesID
END
END;
GO
表刪除或插入知道更新記錄的人嗎?相反,DBO或SA ...從觸發更新我的用戶名前的軟件:「jmadmin」
我對此表示懷疑。數據庫將跟蹤誰登錄到數據庫。軟件系統本身可能會跟蹤個人用戶。 –
我有一種感覺,這將是一個長鏡頭。希望可能是大聲笑 – mrmcg
此外,這可能不會完全符合你的想法。如果該列是udpate語句的一部分,則UPDATE函數的計算結果爲true。它不評估插入和刪除的值是否不同。我可能會跳過UPDATE函數並將i.PartGroupID <> d.PartGroupID作爲插入的Where謂詞。 –