2010-04-06 8 views
5

Ich habe eine sehr einfache CLR-Funktion für RegexIst es möglich, einen neuen T-SQL-Operator mit CLR-Code in SQL Server zu erstellen?

Passende tun
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); 
} 

Es mir wie eine SQL-Anweisung zu schreiben.

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

ich gerade denke, es wäre schön, dass die Abfrage neu zu formulieren, so dass es wie

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

genannt werden könnte, ist es möglich, neue Vergleichsoperator mit CLR-Code zu erstellen. (Ich vermute, von meinem kurzen Blick rund um das Web, die die Antwort NO, aber kein Schaden zu fragen)

Antwort

6

Nein, Sie können nicht. Sie können Funktionen, gespeicherte Prozeduren, Trigger usw. erstellen. Es ist jedoch nicht vorgesehen, neue T-SQL-Operatoren oder -Befehle zu erstellen. Nicht auch in SQL Server 2008R2, soweit ich das beurteilen kann.

+0

prost marc, so viel gedacht. Vielen Dank. –

Verwandte Themen