Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

Regex का उपयोग करके SQL ईमेल सत्यापन फ़ंक्शन

संक्षिप्त उत्तर यह है कि नहीं, ऐसा नहीं किया जा सकता है। LIKE के लिए सिंटैक्स नियमित अभिव्यक्तियों के समान नहीं है (और इससे कम शक्तिशाली)। यह भी देखें T-SQL में SQL सर्वर रेगुलर एक्सप्रेशन

लेकिन आप .NET पर हॉप कर सकते हैं और वहां मिलान कर सकते हैं। आप एक VBScript.RegExp . को इंस्टेंट कर सकते हैं sp_OACreate और उसका उपयोग करें।

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

Regex ईमेल सत्यापन त्रुटि पर एक नज़र डालें - जावास्क्रिप्ट का उपयोग करना यह देखने के लिए कि क्या आप कुछ कम प्रतिबंधित होना चाहते हैं कि किन वर्णों की अनुमति है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. हम एसएसएमएस में एन्क्रिप्टेड संग्रहीत प्रक्रिया के शरीर को कैसे देख सकते हैं?

  2. वर्चर को तारीख में बदलने के लिए CONVERT () का उपयोग WHERE क्लॉज में करना

  3. LINQ (ala TABLESAMPLE) के साथ बड़े परिणामसेट से कुशलतापूर्वक यादृच्छिक पंक्तियों का चयन करें

  4. मैं अपने SQL सर्वर डेटाबेस स्कीमा को कैसे अपडेट कर सकता हूं?

  5. एएसपीनेट में डेटाबेस से छवि पुनर्प्राप्त करें