Scalar Function in SQL that returns everything After a specified character

Return the substring after the given character. e.g.

select dbo.AfterChar('Jim@gmail.com','@')

...returns 'gmail.com'.

select dbo.AfterChar('Jim#2315','#')

...returns '2315'.

Special cases:

select dbo.AfterChar('Jim#2315','@')

...returns 'Jim#2315', since @ is not in the string.

select dbo.AfterChar(null,'@')

...returns null, since @ cannot be in the string.

-- Return the substring after the given character.
-- e.g.
--   select dbo.AfterChar('Jim@gmail.com','@') -- returns 'gmail.com'.
--   select dbo.AfterChar('Jim#2315','#') -- returns '2315'.
-- Special cases:
--   select dbo.AfterChar('Jim#2315','@') -- returns 'Jim#2315', since @ is not in the string.
--   select dbo.AfterChar(null,'@') -- returns null, since @ cannot be in the string.
Alter FUNCTION [dbo].[AfterChar]
	(
		@value VARCHAR(MAX) ,
		@separator CHAR(1)
	)
RETURNS VARCHAR(MAX)
AS
BEGIN
	if (@value is null) return @value

	declare @charLocation integer;
	Set  @charLocation = CHARINDEX(@separator, @value)
	if (@charLocation = 0) return @value
	return SubString(@Value, @charLocation+1, Len(@Value))
END