Fix line by line parameterization in a table
I think you might consider removing all the non-numeric values, then update it with the 'S' hyphen prefix.  Two transactions. I'm operating from the position that you don't really trust the mask/format that was used when inserting the data but the numeric values are okay (e.g. 'As you can see, there are a lot of different values').

Here's a function that removes non-numeric characters (from here: How can I strip non-numeric characters out of a string?)

CREATE Function [fnRemoveNonNumericCharacters](@strText VARCHAR(1000))
RETURNS VARCHAR(1000)
AS
BEGIN
    WHILE PATINDEX('%[^0-9]%', @strText) &gt; 0
    BEGIN
        SET @strText = STUFF(@strText, PATINDEX('%[^0-9]%', @strText), 1, '')
    END
    RETURN @strText
END


Usage: 

UPDATE Viaturas SET patrimonio = dbo.fnRemoveNonNumericCharacters(patrimonio)


Then:

UPDATE Viaturas SET patrimonio = CONCAT('S-', patrimonio)