删除触发器将操作用户保存到另一个表的字段里
表A 结构:
ID Name
1 ZHANG
表B 结构
Id tableA-ID Name useid
SQL 用户:
user1
user2
user3
以上三个用户都有删除记录的权限
现在user1 执行了删除一条表记录的命令, 现在想用触发器在A表记录被删除之前把表记录插入到表B 中并且同时插入执行此命令的用户名.只是想记录下来是谁删除的记录
测试样本: user2 删除了一条记录从表A 结果如下:
表B
Id tableA-ID Name useid
1 1 ZHANG user2
ID Name
1 ZHANG
表B 结构
Id tableA-ID Name useid
SQL 用户:
user1
user2
user3
以上三个用户都有删除记录的权限
现在user1 执行了删除一条表记录的命令, 现在想用触发器在A表记录被删除之前把表记录插入到表B 中并且同时插入执行此命令的用户名.只是想记录下来是谁删除的记录
测试样本: user2 删除了一条记录从表A 结果如下:
表B
Id tableA-ID Name useid
1 1 ZHANG user2
作者: whisky_sour 发布时间: 2011-06-10
SQL code
CREATE TRIGGER ON [表A] AFTER DELETE AS INSERT INTO [表B] ([tableA-ID], [Name], [useid]) SELECT [ID], [Name], USER FROM DELETED
作者: ForFumm 发布时间: 2011-06-10
SQL code
--得到当前用户? select current_user select User_name()
作者: maco_wang 发布时间: 2011-06-10
为什么返回值是 dbo呢?
作者: whisky_sour 发布时间: 2011-06-10
引用 1 楼 forfumm 的回复:
SQL code
CREATE TRIGGER ON [表A]
AFTER DELETE
AS
INSERT INTO [表B] ([tableA-ID], [Name], [useid]) SELECT [ID], [Name], USER FROM DELETED
SQL code
CREATE TRIGGER ON [表A]
AFTER DELETE
AS
INSERT INTO [表B] ([tableA-ID], [Name], [useid]) SELECT [ID], [Name], USER FROM DELETED
插入的用户名是DBO
作者: whisky_sour 发布时间: 2011-06-10
SQL code
select suser_name()
作者: abcjun188 发布时间: 2011-06-10