This function provides easy email address creation from employee's LastName, First name.
Enjoy!!
2007-04-16 (first published: 2007-03-20)
14,110 reads
This function provides easy email address creation from employee's LastName, First name.
Enjoy!!
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE FUNCTION dbo.udf_MakeEmailAddress(@LastFirst varchar(50), @MakeEmailAddr BIT=0)
RETURNS VARCHAR(50)
AS
BEGIN
/***
* Date: 4/23/2002
* Author: <mailto:mikemcw@4segway.biz>
* Project: Employee Email Address Formatting
* Location: Any user database
* Permissions: PUBLIC EXECUTE
*
* Description: Will return the employee's email address, IF
* @MakeEmailAddr is 1; if not, then just the
* employee's FirstName LastName is returned.
*
* Best when an employee's actual address is like:
* firstname.lastname@yourdomain.com
*
* Usage Examples:
* select dbo.udf_MakeEmailAddress(t.LastName + ',' + t.FirstName ,0)
* AS EmailAddress FROM mytable t
*
* Let's say the employee's [lastname,firstname] is in the database
* (notice the comma, it must be in the value passed to the function
*
* select dbo.udf_MakeEmailAddress(t.employeename ,0)
* AS EmailAddress FROM mytable t
*
* Simple example:
* select dbo.udf_MakeEmailAddress('LastName, FirstName',0)
* returns: FirstName LastName
* select dbo.udf_MakeEmailAddress('LastName, FirstName',1)
* returns: FirstName.LastName@YourDomain.com
*
* Restrictions: SQL Server 2000 Only
*
* Make sure the ToDo's are done!
*
***/
DECLARE @FirstLast VARCHAR(50)
DECLARE @DomainName VARCHAR(255)
--ToDo: Change this to your domain name, be sure to keep the @ sign
SET @DomainName = '@YourDomain.com'
IF (CHARINDEX(',', @LastFirst) > 0) --make sure the @lastname is a person (no comma).
BEGIN
IF @MakeEmailAddr = 0 AND @LastFirst IS NOT NULL
SET @FirstLast = RTRIM(RIGHT(@LastFirst, CHARINDEX(',', REVERSE(@LastFirst)) -1)) + ' ' +
RTRIM(LEFT(@LastFirst, CHARINDEX(',', @LastFirst)-1))
ELSE
SET @FirstLast = RTRIM(RIGHT(@LastFirst, CHARINDEX(',', REVERSE(@LastFirst)) -1)) + '.' +
RTRIM(LEFT(@LastFirst, CHARINDEX(',', @LastFirst)-1))
END
ELSE
--Just return the name passed in, we cannot do anything about it
SET @FirstLast = @LastFirst
IF @MakeEmailAddr = 1 AND @LastFirst IS NOT NULL
SET @FirstLast = REPLACE(@FirstLast, ' ','') + @DomainName
RETURN (LTRIM(RTRIM(@FirstLast)))
END
GO
GRANT EXECUTE ON dbo.udf_MakeEmailAddress TO PUBLIC
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO