The other answers are good, especially if you have to live in pure T-SQL land. However, just as another option, you could solve problems like this with a little Regex magic. Since you're using SQL 2008, you could leverage .NET. Here's some VB code to make 2 CLR UDFs that you can re-use over and over:
Option Explicit On
Option Strict On
Option Compare Binary
Option Infer On
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports System.Text
Imports System.Text.RegularExpressions
Imports Microsoft.SqlServer.Server
Partial Public Class UserDefinedFunctions
<Microsoft.SqlServer.Server.SqlFunction()>
Public Shared Function IsRegexMatch(ByVal input As SqlString, ByVal pattern As SqlString) As SqlBoolean
If input.IsNull OrElse pattern.IsNull Then Return SqlBoolean.Null
Return Regex.IsMatch(input.Value, pattern.Value, RegexOptions.IgnorePatternWhitespace Or RegexOptions.Singleline Or RegexOptions.Multiline)
End Function
<Microsoft.SqlServer.Server.SqlFunction()>
Public Shared Function RegexReplace(ByVal input As SqlString, ByVal pattern As SqlString, ByVal replacement As SqlString) As SqlString
If input.IsNull OrElse pattern.IsNull OrElse replacement.IsNull Then Return SqlString.Null
Return Regex.Replace(input.Value, pattern.Value, replacement.Value, RegexOptions.IgnorePatternWhitespace Or RegexOptions.Singleline Or RegexOptions.Multiline)
End Function
End Class
Once you add these UDFs to SQL Server, you can solve your problem with a dirt simple call like this:
update BusinessUsers
set EmailAddress = dbo.RegexReplace(EmailAddress, '^\.|\.$', '')
It's a great general purpose solution to help with all sorts of similar text manipulation problems you might encounter in the future.