MS SQL只读字段
最近开发SQL想控制某些字段,不能手动直接在SQL 编辑更改,因而想到SQL只读字段功能。
就比如实现的用户锁定时间,以及密码过期时间,这两个字段均是由密码参数相关设置而系统变更,为了不想让人为在数据手动更改它们,产生与策略相违的做法,因此Insus.NET特为此表写了一个更新(UPDATE)触发器,实现让SQL的字段有只读功能。如:
tri_Users_Update
CREATE TRIGGER [dbo].[tri_Users_Update]
ON [dbo].[Users]
FOR UPDATE
AS
IF UPDATE([LockoutDate]) --用户锁定时间
BEGIN
RAISERROR(N'禁止更改密码锁定时间,更改操作终止。',16,1)
ROLLBACK TRANSACTION
END
IF UPDATE([PasswordExpirationDate]) --密码过期时间
BEGIN
RAISERROR(N'禁止更改密码过期时间,更改操作终止。',16,1)
ROLLBACK TRANSACTION
END
ON [dbo].[Users]
FOR UPDATE
AS
IF UPDATE([LockoutDate]) --用户锁定时间
BEGIN
RAISERROR(N'禁止更改密码锁定时间,更改操作终止。',16,1)
ROLLBACK TRANSACTION
END
IF UPDATE([PasswordExpirationDate]) --密码过期时间
BEGIN
RAISERROR(N'禁止更改密码过期时间,更改操作终止。',16,1)
ROLLBACK TRANSACTION
END