0

Sql Server 2008 では、トリガーを使用してのみ変更できるフィールドを設定する方法はありますか?

例:

レコードを作成すると、レコードは NULL に設定され、トリガーによってたとえば 1 に更新されます。ユーザーが NULL 以外に設定することはできません。そして、更新されると、トリガーは値を 2 に設定します。

4

2 に答える 2

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
于 2013-02-18T11:28:07.543 に答える
0

計算列の使用を検討しましたか。この列のデータをデータベース ロジックのみで制御する場合は、計算列が最適です。

于 2013-02-18T15:47:28.450 に答える