在程序开发经常会遇到一些数据库中的列一旦被创建就不能随意的修改的情况,如用户管理系统中如果创建了一个用户那么用户名就不能随意的更改了,这种情况可以借助sql server的触发器来实现。
方法一:
create trigger aaa on admin--表名
for update
as
if update(username)--username就是不能被随意更改的字段
rollback transaction--直接回滚操作
方法二:
create trigger aaa on admin--表名
for update
as
if update(username)--username就是不能被随意更改的字段
update admin set admin.username=deleted.username from admin,deleted where admin.id=deleted.id
/**
由于表中的记录在update时会产生2步操作,1.先删除记录存放在deleted这个虚拟表中;2执行insert操作
本语句就是直接将删除存放到deleted表中的记录进行update回去,因此是没有被update的
**/