Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Validasi Email TSQL (tanpa ekspresi reguler)

Sangat dasarnya adalah:

SELECT
  EmailAddress, 
  CASE WHEN EmailAddress LIKE '%[email protected]_%_.__%' 
            AND EmailAddress NOT LIKE '%[any obviously invalid characters]%' 
  THEN 'Could be' 
  ELSE 'Nope' 
  END Validates
FROM 
  Table

Ini mencocokkan semuanya dengan @ di tengah, didahului oleh setidaknya satu karakter, diikuti oleh setidaknya dua, titik, dan setidaknya dua untuk TLD.

Anda dapat menulis lebih banyak LIKE pola yang melakukan hal-hal yang lebih spesifik, tetapi Anda tidak akan pernah bisa mencocokkan segala sesuatu yang bisa menjadi alamat email tanpa membiarkan hal-hal yang tidak lolos. Bahkan dengan ekspresi reguler Anda kesulitan melakukannya dengan benar. Selain itu, bahkan pencocokan menurut huruf RFC cocok dengan konstruksi alamat yang tidak akan diterima/digunakan oleh sebagian besar sistem email.

Melakukan hal ini pada tingkat basis data mungkin merupakan pendekatan yang salah, jadi pemeriksaan kewarasan dasar seperti yang ditunjukkan di atas mungkin adalah yang terbaik yang bisa Anda dapatkan dari segi kinerja, dan melakukannya dalam aplikasi akan memberi Anda fleksibilitas yang jauh lebih besar.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengimpor file .bak SQL Server ke MySQL?

  2. Temukan Asosiasi Antara Akun Email Database dan Prinsipal Database di SQL Server (T-SQL)

  3. Cara menggunakan UPDATE dari SELECT di SQL Server

  4. Mengapa menggunakan tingkat isolasi READ UNCOMMITTED?

  5. Masalah Tabel Sementara RODBC saat menghubungkan ke MS SQL Server