各位大哥大师,,,小弟遇到一个难题,望帮帮忙,不胜感激。下面有两个表,一个是工资表 SalaryByLedger 一个表是 月份期间表 company现在是,当这个月份结账的时候,工资表这个月的数据不能增加,删除,修改!请问触发器怎么写呢???下面是表的字段:create table SalaryByLedger (
hrcode varchar(50) , --工号
hrname varchar(100), --姓名
pay money , --工资
periodid varchar(20) --月份
)create table company
(
periodid varchar(20) , --月份
companyid varchar(50) , --公司
isnot int --是否结账 默认为0 0的时候为没结账,,1的时候为结账
)
hrcode varchar(50) , --工号
hrname varchar(100), --姓名
pay money , --工资
periodid varchar(20) --月份
)create table company
(
periodid varchar(20) , --月份
companyid varchar(50) , --公司
isnot int --是否结账 默认为0 0的时候为没结账,,1的时候为结账
)
create trigger tri_name on SalaryByLedger
for insert ,update ,delete
as
if exists(select 1 from company where isnot=1 )
rollback
on SalaryByLedger
instead of insert,delete ,update
as
begin
if exists(select 1 from company where isnot =1)
rollback...
end
go
create trigger my_tri on SalaryByLedger
for insert,update,delete
as
if exists(select 1 from inserted)--插入,更新
begin
if exists (select 1 from inserted i where i.periodid in (select periodid from company where isnot=1))
rollback
endif exists(select 1 from deleted)--删除的场合begin
if exists (select 1 from deleted d where d.periodid in (select periodid from company where isnot=1))
rollback
endgo