Simple query :
UPDATE [WebERP].[dbo].[Users]
SET
[ActiveDirectoryUser] = null
WHERE ActiveDirectoryUser='xxx\royin'
Error :
Msg 512, Level 16, State 1, Procedure Users_Update, Line 17
Subquery returned more than 1 value. This is not permitted when the subquery
follows =, !=, <, <= , >, >= or when the subquery is used as an
expression. The statement has been terminated.
I guess the problem is here :

it treats it as carriage return.
(if I change \r to \b it’s ok.)
How can I fix it ?
I think your error in fact lies elsewhere – I assume you’ve given us a much simplified query which in fact doesn’t reproduce the original error, or you’ve only given us one part of a bigger query.
For one thing – it says the error occurs in a subquery – your example doesn’t contain one.
The code you’ve provided works fine on my adventureworks database:
Does exactly as expected.