Det korte svar er, at nej, det kan ikke lade sig gøre. Syntaksen for LIKE er ikke det samme som (og langt mindre kraftfuldt end) regulære udtryk. Se også SQL Server Regulære udtryk i T-SQL
Men du kan hoppe til .Net og lave matchningen der. Du kan instansiere en VBScript.RegExp
inde i T-SQL ved hjælp af sp_OACreate og brug det.
CREATE FUNCTION dbo.isValidEmailFormat
(
@Email varchar(100)
)
RETURNS bit
AS
BEGIN
DECLARE @pattern varchar(4000)
SET @pattern = '[a-zA-Z0-9_\-][email protected]([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
Tag et kig på Regex e-mailbekræftelsesfejl - ved hjælp af JavaScript for at se, om du vil være en smule mindre restriktiv med hensyn til, hvilke tegn der er tilladt.