在Sql Server 2008中有没有办法设置一个只能使用Trigger更改的字段?
示例:
创建记录时,它设置为NULL,然后通过触发器更新为例如1。 用户不应该将其设置为NULL以外的任何值。 然后在更新时,触发器会将值设置为2。
答案 0 :(得分:1)
create table tmp (a int primary key, b int)
GO
create trigger tr_insupd_tmp on tmp
instead of insert, update
as
if not exists(select * from deleted)
-- Process Insert
insert into tmp
select a, 1
from inserted
else
-- Process Update
update tmp
set b = 2
from tmp t
inner join inserted i on t.a = i.a
GO
答案 1 :(得分:0)
您是否考虑过使用计算列。如果您希望此列中的数据仅受数据库逻辑控制,则计算列可能是可行的。