Câu trả lời ngắn gọn là không, nó không thể được thực hiện. Cú pháp cho THÍCH không giống như (và ít mạnh mẽ hơn) các biểu thức chính quy. Xem thêm SQL Server Biểu thức chính quy trong T-SQL
Nhưng bạn có thể chuyển sang .Net và thực hiện khớp ở đó. Bạn có thể khởi tạo một VBScript.RegExp
bên trong T-SQL bằng cách sử dụng sp_OACreate và sử dụng nó.
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
Hãy xem qua Lỗi xác minh email Regex - sử dụng JavaScript để xem bạn có muốn hạn chế hơn một chút về những ký tự được phép hay không.