日期:2014-05-17  浏览次数:20540 次

把数据库隔离等级改为快照的副作用?
最近数据库增加了些不可避免的触发器(程序无法修改)。
所以有时并发量高时出现了死锁。

我如果直接把数据库隔离等级改为快照,这样做的副作用是什么呢?
请高手指点。

------解决方案--------------------
这样都会死锁?
如果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