Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Xác thực email trong sql server 2008?

Đây là một ví dụ về cách tạo một bảng với các quy tắc cụ thể cho thư có địa chỉ (regexp). Sau đó, một ví dụ với mẫu truy vấn sql (Regexp). Với điều này, bạn sẽ có thể làm những gì bạn muốn

Tạo bảng với regexp

create table Contacts (
FirstName nvarchar(30),
LastName nvarchar(30),
EmailAddress nvarchar(30) CHECK (dbo.RegExMatch('[a-zA-Z0-9_\-][email protected]([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz)', EmailAddress)=1),
USPhoneNo nvarchar(30) CHECK (dbo.RegExMatch('\([1-9][0-9][0-9]\) [0-9][0-9][0-9]\-[0-9][0-9][0-9][0-9]', UsPhoneNo)=1))
INSERT INTO [talend].[dbo].[Contacts]
([FirstName]
,[LastName]
,[EmailAddress]
,[USPhoneNo])
VALUES
('Hallam'
,'Amine'
,'[email protected]’
,'0129-2090-1092')
,( 'encoremoi'
,'nimportequoi'
,'[email protected]'
,'(122) 190-9090')
GO

Thực thi sql yêu cầu với regexp

SELECT [FirstName]
,[LastName]
,[EmailAddress]
,[USPhoneNo]
FROM [talend].[dbo].[Contacts]
where [talend].[dbo].RegExMatch([EmailAddress],'[a-zA-Z0-9_\-][email protected]([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz|au)') = 1

Mã chức năng

using System;
using Microsoft.SqlServer.Server;
using System.Text.RegularExpressions;
public partial class RegExBase
{
[SqlFunction(IsDeterministic = true, IsPrecise = true)]
public static int RegExMatch( string matchString , string pattern)
{
Regex r1 = new Regex(pattern.TrimEnd(null));
if (r1.Match(matchString.TrimEnd(null)).Success == true)
{
return 1 ;
}
else
{
return 0 ;
}
}
};

Để biết thêm giải thích, hãy xem hướng dẫn ở đây ->

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để xác định trong SQL Server nếu một phạm vi dateTime chồng lên một phạm vi khác

  2. Tên thủ tục thực thi hiện tại

  3. Các chỉ mục của SQL Server - tăng dần hoặc giảm dần, nó tạo ra sự khác biệt gì?

  4. Khi nào sử dụng EXCEPT thay vì NOT EXISTS trong Transact SQL?

  5. Thiết kế mối quan hệ 1:1 và 1:m trong SQL Server