CREATE FUNCTION dbo.fn_KeepOnlyNumbers (@input NVARCHAR(MAX))
	RETURNS NVARCHAR(MAX)
	AS
	BEGIN
	    WHILE PATINDEX('%[^0-9]%', @input) > 0
	    BEGIN
	        SET @input = STUFF(@input, PATINDEX('%[^0-9]%', @input), 1, '')
	    END
	
	    RETURN @input
	END
	
	
	Usage:
	
	SELECT dbo.fn_KeepOnlyNumbers('A1B2C-3D_4E!5F') AS OnlyNumbers