Changing ChildOf constraint influence to 0, but keeping the position it had as a child
The trick to unparenting is to animate the constraint and the objects location. On one frame you keyframe the objects location using Insert visual locrotscale, the visual keying options will keyframe values after modifiers and constraints are applied. You also key the constraint influence as 1.0 on this frame. Then move one frame and keyframe the childof influence as 0.0.

After you keyframe the visual location and change the constraint to 0.0 the object will snap back to it's original position. Once you keyframe the influence go back a frame and it will go back to where the keyframes put it.

You may also have two constraints, one parenting to the sheath and another parenting to the hand. You just have one at 0.0 influence and the other at 1.0 influence on one frame and swap them around the next frame.



Sample blend