может велосипед
declare @str varchar(max)
set @str = '+23123466666666666555'
select CHARINDEX('+',@str)
select CAST(@str as bigint)
where @str not like('%[^0-9,-,+]%')
and not CHARINDEX(@str,'-')>1
and not CHARINDEX(@str,'+')>1
and len(replace(replace(@str,'-',''),'+',''))<=19
|