With your actual table design, when you change the score of a record, you have to recompute the ranks through all the table.
You may consider getting rid of your Rank column, and compute the rank in the query instead. Something like:
SELECT
t.Id
, t.Score
, ROW_NUMBER() OVER (ORDER BY t.Score DESC) AS Rank
, t.Name
, t.Photo
FROM TableName AS t
Hope this helps.
[edit] Corrected OVER clause. [/edit]