Jawaban singkatnya adalah tidak, itu tidak bisa dilakukan. Sintaks untuk LIKE tidak sama dengan (dan jauh lebih lemah daripada) ekspresi reguler. Lihat juga SQL Server Regular ekspresi di T-SQL
Tetapi Anda dapat melakukan lompatan ke .Net dan melakukan pencocokan di sana. Anda dapat membuat instance VBScript.RegExp
di dalam T-SQL menggunakan sp_OACreate dan gunakan itu.
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
Intip Kesalahan verifikasi email reguler - menggunakan JavaScript untuk melihat apakah Anda ingin sedikit membatasi karakter apa yang diizinkan.