我有一列order_id在開票表 一旦此order_id存在(意味着不是NULL), 然後它不能再次更新爲NULL或任何其他值。設置約束或任何其他解決方案不能更新表
我有一個巨大的bug,以某種方式爲某些記錄NULL值。
1.我現在正在做1個月的QA,找不到sp將字段更新爲NULL。我涵蓋了所有的UI和業務邏輯,並沒有發現任何東西。有沒有更好的方法來找到什麼更新某些字段爲空?
2.是否存在SQL方式的約束,一旦它具有值就會將警衛放在字段上,並且如果有任何事情會嘗試更新它,將會拋出錯誤。
我有一列order_id在開票表 一旦此order_id存在(意味着不是NULL), 然後它不能再次更新爲NULL或任何其他值。設置約束或任何其他解決方案不能更新表
我有一個巨大的bug,以某種方式爲某些記錄NULL值。
1.我現在正在做1個月的QA,找不到sp將字段更新爲NULL。我涵蓋了所有的UI和業務邏輯,並沒有發現任何東西。有沒有更好的方法來找到什麼更新某些字段爲空?
2.是否存在SQL方式的約束,一旦它具有值就會將警衛放在字段上,並且如果有任何事情會嘗試更新它,將會拋出錯誤。
create table test2 (id int identity primary key, name varchar(20) not null, somevalue varchar(20))
GO
create trigger test2_upd_trigger
on test2
after update as
begin
update test2 set somevalue = coalesce(d.somevalue, i.somevalue)
from inserted i join deleted d on i.id = d.id
join test2 on test2.id = i.id
end
GO
insert test2 (name) values ('Demo1')
update test2 set somevalue = 'A value' where id = 1 -- This is allowed
select * from test2 -- [somevalue] has been assigned a value
update test2 set somevalue = null where id = 1 -- This is "rejected" by the trigger
select * from test2 -- [somevalue] retains its value
我認爲你需要一個觸發強制執行這一點。 –
爲什麼字段可以爲空? –
該網站是巨大的,我什至不知道在哪裏把這個觸發器,我找不到什麼命令更新值爲null,如果我知道我會解決它。我怎麼找到觸發的地方? – Alexxx