• 8918阅读
  • 2回复

Primary Key约束在对象UACCESS中出现冲突,导致用户不能登录PM,不能打开项目 [复制链接]

上一主题 下一主题
 

只看楼主 正序阅读 0楼 发表于: 2008-02-26
Primary Key约束在对象UACCESS中出现冲突 vHI"C %  
1 用户登录时出现问题,如图: CQ8o9A/  
6XOpB^@  
N}l]Ilm$34  
  O&?CoA?  
rd"]@ ~v1  
. ~A"Wyu\  
H%NLL4&wu  
!aW*dD61  
S"KTL*9D  
2 打开项目时,出现“一个项目多于一个最高WBS”的提示; QzFv ;  
L>5!3b=b  
3 数据库升级之后,用户不能正常登录; u'~b<@wHB  
E? m#S  
4 出现“Key violation. Violation of primary key constraint 'Pk_UAccess' Z'EO   
EDBEnginError KVVCP-1971-2 Key Violation ”的提示。 hml\^I8Q>F  
ILr6W@o5A  
解决方案: k,N U,^ &  
!iitx U  
[q>i  
1、  解决这个问题,要求对数据库进行一定地修复,所以,请先对数据库PMDB进行备份。 S9"y@F <  
-{:Lx E  
2、  连接数据库: PM@s}(  
如果是MS SQL Server请以privuser用户登录MS SQL Server的查询分析器 .{]c&Ef+f  
如果是Oracle请以admuser用户登录Oracle的SQLPlus,或者其他类似的工具 dpGQ0EzH^  
如果是Interbase请以sysdba登录ISQL ^`>Ysc(@&  
a4a[pX,5  
3、  执行下面语句 kJ<Xq   
select  proj_id, proj_node_flag from projwbs where proj_node_flag = 'Y' group by proj_id, proj_node_flag having count(1) > 1 jVFRqT%  
本例中反馈结果为  +SA<0l  
524 Y NK#"qK""k  
zju,#%  
4、  执行下面语句 O->(9k <  
select wbs_id, proj_node_flag from projwbs where proj_id = '524’  //524是上一条语句查询反馈的结果 ??%T  
本例中反馈结果为 ^Lv ^W  
wbs_id  proj_node_flag _M]rH<h  
17340    Y \PMKmJ X0O  
17350    N 7F9g:r/^  
17351    N DdS3<3]A  
17352    N Jgv>$u  
17353    N L+ETMk0  
17354    N wZ3 vF)2s  
17355    N b;;Kxi:7$}  
17356    N Ty4%du6?d  
17357    N j!_^5d#d  
17443    Y {_X1&&>8/  
*Qwhi&k  
5、选择上述语句中反馈中最大值,本例中最大值为17443 Y。运行下列语句更新, b= ec?n #7  
update projwbs set proj_node_flag = 'N' where wbs_id ='17340'  //17340是上一条语句查询反馈结果中WBS_id最大值。 *rFbehfH  
执行完了结果应该为: FjLv*K[#d  
(所影响的行数为 1 行) E4aCGg  
(所影响的行数为 1 行) 2#A9D.- h  
sS2E8Z2  
6、关闭SQL工具; Qnb?hvb"d  
}~~^ZtJ\  
7、重新登录PM。  G@<lwnvD*J  
论坛十六周年庆!

只看该作者 2楼 发表于: 2008-03-13
你牛,说实话,内容我还没有看懂 o@`E.4   
数据库没有研究过

只看该作者 1楼 发表于: 2008-02-26
牛!直接操作数据库,对这点我是不敢轻举妄动的.
提供全国各个行业的定额资源库(含定额子目及人材机),为企业定制资源库,代写各类资源库.欢迎联系!
快速回复
限1000 字节
 
上一个 下一个