Il trucco che funziona è COLLATE il tuo valore a Latin1_General_BIN prima di utilizzare REPLACE e utilizzare anche nchar(0x00) COLLATE Latin1_General_BIN per modello_stringa .
SOSTITUISCI (espressione_stringa, modello_stringa , sostituzione_stringa )
select
[Terminated] = N'123' + nchar(0) + N'567'
,[Replaced with -] = REPLACE((N'123' + nchar(0) + N'567') COLLATE Latin1_General_BIN
, nchar(0x00) COLLATE Latin1_General_BIN
,'-')
,[Removed] = REPLACE((N'123' + nchar(0) + N'567') COLLATE Latin1_General_BIN
, nchar(0x00) COLLATE Latin1_General_BIN
,'')
Ecco il risultato (usa Output in testo):
Contains Replaced with - Removed
---------- ----------------- --------
123 567 123-567 123567