Assuming these are all actually assign to a person and not to a group (or queue if using 7.5), you can check this query to make sure you got all the stuff. Obviously, change the DB name and the users email address to match your need.
USE [ServiceDeskDB]
SELECT TA.TaskID
,TSK.WFTaskNumberPrefix
FROM [dbo].[TaskAssignment] TA
INNER JOIN dbo.Task TSK ON TA.TaskID = TSK.TaskID
INNER JOIN dbo.[User] USERS ON TA.ReferenceID = USERS.UserID
WHERE TSK.IsCompleted = 0
AND TA.ReferenceType = 1
Assuming that pulls back the right stuff, you can go ahead with a change to assign them to a different person. If you want to assign them to a group, it's a little different as you'd want to set the [ReferenceType] to 2 and lookup the GroupID instead of UserID from the [Group] table using [GroupName] instead of email.
UPDATE dbo.TaskAssignment SET
ReferenceID = (SELECT UserID FROM dbo.[User] WHERE [PrimaryEmail] = '
NewUser@email.com')
WHERE TaskID IN (SELECT TA.TaskID
FROM [dbo].[TaskAssignment] TA
INNER JOIN dbo.Task TSK ON TA.TaskID = TSK.TaskID
INNER JOIN dbo.[User] USERS ON TA.ReferenceID = USERS.UserID
WHERE TSK.IsCompleted = 0
AND TA.ReferenceType = 1
While I haven't ever done this exact query, it does seem to work just fine and I have done similar ones before. Obviously this is more of a rough draft and may require slight tweaking depending on what you are working with.
Case in point here as WK01 needs to adjust permission as well. This one will replace all permissions for the old user with the new user on ALL processes, open or closed. It could easily be limited by joining to the ReportProcess tables on the sessionid and putting more limitations in the where clause.
UPDATE dbo.ReportProcessPermission SET
ReferenceID = (SELECT UserID FROM dbo.[User] WHERE [PrimaryEmail] = '
NewUser@email.com')
WHERE ReferenceID = (SELECT [UserID] FROM dbo.[User] WHERE PrimaryEmail = '
OldUser@email.com')