知识库 >> 软件使用教程及资料 >> 安装和维护 >> 
[#186] 数据库更新脚本:计算事务关闭时间的存储过程
【摘要】
修复未关闭的事务在导出时也有“关闭时间”值的问题。
【内容】

用管理员账号登陆URTracker后,打开http://urtracker网址/maintaindb.aspx 页面。将如下的代码复制到执行框中,执行即可。

-- 更新存储过程
--更新问题的状态
ALTER        PROCEDURE [dbo].[sp_Pts_ChangeProblemState]
@ProblemID int,
@NextStateID int,
@UserID int
AS

DECLARE @IsClosed bit
SELECT @IsClosed = IsFinalState FROM Pts_ProblemState WHERE ProblemStateID = @NextStateID
IF @IsClosed = 0
BEGIN
Update  Pts_Problems Set ProblemStateID=@NextStateID,AssignedTo=@UserID,CloseTime = null
 Where ProblemID = @ProblemID
END
ELSE
BEGIN
Update  Pts_Problems Set ProblemStateID=@NextStateID,AssignedTo=@UserID,CloseTime = GetDate()
 Where ProblemID = @ProblemID
END

exec sp_Pts_RecordStateStart @ProblemID, @NextStateID, @UserID

Declare @ProjectID int
Declare @ParentID int
Select @ProjectID = ProjectID,@ParentID =ParentID From v_Pts_Problems Where ProblemID=@ProblemID
exec sp_Pts_ComputeProjectCounter @ProjectID

if @ParentID > 0
BEGIN
 exec sp_Pts_UpdateProblemChildNum @ParentID
END

 

GO

-- 更新已有的事务
Update Pts_Problems SET CloseTime = null WHERE ProblemID in (SELECT ProblemID FROM v_Pts_Problems WHERE IsClosed=0)

GO

【备注】