Esta função recebe 3 parâmetros
1. String a ser Mascarada
2. Quantidade de string não mascarada no prefixo da string
3. Quantidade de string não mascarada no sufixo da string
Esta função é extremamente rápida em um update, e dependendo da loucura que você queira fazer talvez seja necessário utilizar a função cast ou convert .
Lembrando que esta função foi projetada para campos tipo string não vai dar certo com campo tipo numero ou data. né........
-- DROP FUNCTION [dbo].[MASK_CAMP]
CREATE FUNCTION [dbo].[MASK_CAMP]
(
@TEXTO VARCHAR(MAX),
@Prefixo_String INT,
@Sufixo_String INT
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @String VARCHAR(MAX)
DECLARE @Meio_String INT
SET @String=LTRIM(RTRIM(@TEXTO))
SET @Meio_String=@Prefixo_String+@Sufixo_String
IF LEN(@String)<=@Meio_String
BEGIN
SET @String= REPLICATE('x',LEN(@String))
END
ELSE IF LEN(@String)>@Meio_String
BEGIN
SET @String=LEFT(@String, @Prefixo_String)+REPLICATE('x',LEN(@String)-@Meio_String)+RIGHT(@String, @Sufixo_String)
END
RETURN @String
END