把数据库隔离等级改为快照的副作用?
最近数据库增加了些不可避免的触发器(程序无法修改)。
所以有时并发量高时出现了死锁。
我如果直接把数据库隔离等级改为快照,这样做的副作用是什么呢?
请高手指点。
------解决方案--------------------这样都会死锁?
如果HR_No都是索引列,应该很快。。。。
功能好像是记录最后更新时间(这个有时间戳吧),同步密码字段到另一个表(这个可以利用视图吧)
------解决方案--------------------触发器感觉有点问题,你需要说明下两个表的主键
tb1如果主键是HR_No,为什么要加Stat_No 连接
tb1如果主键是(HR_No,Stat_No),与tb2的连接就不是唯一的了
这一句不知道判断什么
IF NOT Exists(Select HR.HR_No From tb1 HR, Inserted Where HR.HR_No = Inserted.HR_No)
------解决方案--------------------insert触发器里又套有update, 引发update触发器。然后两个触发器又都去更改tb2的密码。
bbb触发器里的udpate password纯多余。
但愿能明白我说的什么
drop table ccnt,ctst
go
create table ccnt(n int)
go
create table ctst(id int, x int)
go
insert ccnt select 0
insert ctst select 1,1
go
select * from ccnt
select * from ctst
go
create trigger tr on ctst for update
as
update ctst set x=x+1
update ccnt set n=n+1
go
create trigger tr1 on ctst for insert
as
update ctst set x=x-2
update ccnt set n=n+1
go
insert ctst select 2,20
select * from ctst
select * from ccnt