2010-04-06 10 views
5

मैं यह मेरी तरह एक एसक्यूएल वक्तव्य लिखने की अनुमति देताएसक्यूएल सर्वर में सीएलआर कोड का उपयोग कर एक नया टी-एसक्यूएल ऑपरेटर बनाना संभव है?

public static SqlBoolean RegExMatch(SqlString input, SqlString pattern) 
{ 
    if (input.IsNull || pattern.IsNull) 
     return SqlBoolean.False; 

    return Regex.IsMatch(input.Value, pattern.Value, RegexOptions.IgnoreCase); 
} 

मिलान Regex करने के लिए एक बहुत ही सरल CLR समारोह है।

SELECT * FROM dbo.table1 WHERE dbo.RegexMatch(column1, '[0-9][A-Z]') = 1 
-- match entries in col1 like 1A, 2B etc... 

मैं बस सोच रहा हूँ यह है कि क्वेरी को पुन: करने के लिए अच्छा होगा तो यह की तरह

SELECT * FROM dbo.table1 WHERE column1 REGEXLIKE '[0-9][A-Z]' 

कहा जा सकता है यह संभव CLR कोड का उपयोग कर नए तुलना ऑपरेटरों को बनाने के लिए है। (मैं वेब कि इसका जवाब नहीं है चारों ओर मेरी संक्षिप्त नज़र से अनुमान लगा रही है, लेकिन कोई नुकसान नहीं पूछ)

उत्तर

6

नहीं, तुम नहीं कर सकते। आप फ़ंक्शंस, संग्रहित प्रक्रियाएं, ट्रिगर और बहुत आगे बना सकते हैं - लेकिन नए टी-एसक्यूएल ऑपरेटरों या कमांड बनाने के लिए कोई प्रावधान नहीं है। जहां तक ​​मैं कह सकता हूं, SQL सर्वर 2008R2 में नहीं है।

+0

चियर्स मार्क, के रूप में ज्यादा लगा। धन्यवाद। –

संबंधित मुद्दे