简短的回答是,不,这是不可能的。语法为LIKE http://msdn.microsoft.com/en-us/library/ms179859.aspx与正则表达式不同(并且功能不如正则表达式)。也可以看看SQL Server T-SQL 中的正则表达式 https://stackoverflow.com/questions/194652/sql-server-regular-expressions-in-t-sql
但您可以跳转到 .Net 并在那里进行匹配。你可以实例化一个VBScript.RegExp
在 T-SQL 内部使用sp_OACreate http://msdn.microsoft.com/en-us/library/ms189763%28v=sql.90%29.aspx并使用它。
CREATE FUNCTION dbo.isValidEmailFormat
(
@Email varchar(100)
)
RETURNS bit
AS
BEGIN
DECLARE @pattern varchar(4000)
SET @pattern = '[a-zA-Z0-9_\-]+@([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz|au)'
DECLARE @Result bit
DECLARE @objRegexExp INT
EXEC sp_OACreate 'VBScript.RegExp', @objRegexExp OUT
EXEC sp_OASetProperty @objRegexExp, 'Pattern', @pattern
EXEC sp_OASetProperty @objRegexExp, 'IgnoreCase', 1
EXEC sp_OASetProperty @objRegexExp, 'MultiLine', 0
EXEC sp_OASetProperty @objRegexExp, 'Global', false
EXEC sp_OASetProperty @objRegexExp, 'CultureInvariant', true
EXEC sp_OAMethod @objRegexExp, 'Test', @Result OUT, @Email
EXEC sp_OADestroy @objRegexExp
RETURN @Result
END
请看一下正则表达式电子邮件验证错误 - 使用 JavaScript https://stackoverflow.com/questions/10371542/regex-email-verification-error-using-javascript?rq=1看看您是否想对允许使用的字符少一些限制。