新增修改删除系统用户时同步新增修改删除自定义模板的人员信息表
需求:在快表系统设置中有用户模块,可以实现对使用系统的员工的管理。同时业务模块中会有认识模块,其中必不可少的就是人员信息表了。当我们在系统管理用户管理中为全员建立了系统数据,同时也要对自定义的人员信息表进行数据维护,目前想实现在系统用户管理中新增用户时,人员信息表自动增加该用户,修改该用户信息时人员信息表中的数据同步修改,同样如果删除此用户时人员信息表中的数据也同步删除。
实现:此需求是为了维持数据完整性,防止对数据的不正确和不一致的改变。可以采用SQLServer触发器实现强制业务逻辑和数据完整性的统一。
方法:分别用三种基本的触发器类型来实现Insert类型、update类型、delete类型
INSERT类型:当用户管理中新建用户时,人员信息表也插入一条记录。
- CREATE TRIGGER [dbo].[SyncUserI]
- ON [dbo].[SYS_USER]
- AFTER INSERT
- AS
- BEGIN
- INSERT INTO T_1936 (ID,F_65471,F_65472,F_65473,F_65474,F_65475,F_65476) SELECT UUID,USERNAME,LOGINNAME,USERMOBILE,USEREMAIL,WDID,UUID FROM INSERTED
- END
- GO
复制代码 T_1936为人员信息表表名,F_开头的字段为自定义的字段,分别对应后面的用户ID,用户姓名,登录名,手机,邮箱,微信钉钉接口ID,用户ID
UPDATE类型:当用户管理中修改用户时,人员信息表也对该用户做同步的修改。
- CREATE TRIGGER [dbo].[SyncUserU]
- ON [dbo].[SYS_USER]
- AFTER UPDATE
- AS
- BEGIN
- UPDATE T_1936 SET F_65471=USERNAME,F_65472=LOGINNAME,F_65473=USERMOBILE,F_65474=USEREMAIL,F_65475=WDID FROM SYS_USER WHERE UUID = ID
- END
- GO
复制代码
DELETE类型:当用户管理中删除用户时,人员信息表也同步删除此用户。
- CREATE TRIGGER [dbo].[SyncUserD]
- ON [dbo].[SYS_USER]
- AFTER DELETE
- AS
- BEGIN
- DECLARE @DELID AS VARCHAR(50)
- SELECT @DELID = UUID FROM DELETED
- DELETE FROM T_1936 WHERE ID = @DELID
- END
- GO
复制代码
上面的脚本均未创建触发器的脚本,如果可以依据自己的实际人员信息表中的字段进行修改后创建。创建后如果要修改可以在数据库管理器SYS_USER表中展开触发器节点选中要修改的触发器名称点击修改。
|
|
hessen