Unerwünschte Zeichen aus SQL Server-Varchar-Spalten entfernen
Aus externen Quellen importierte Daten enthalten häufig unerwartete oder nicht standardmäßige Zeichen, die aus den Varchar-Spalten von SQL Server entfernt werden müssen. In diesem Artikel wird gezeigt, wie Sie dieses Problem mithilfe von C#- und SQL-CLR-Funktionen beheben können.
C#-Lösung mit regulären Ausdrücken
Die Engine für reguläre Ausdrücke von .NET bietet eine leistungsstarke Möglichkeit, damit umzugehen. Der folgende C#-Code verwendet Regex.Replace
, um nicht druckbare Zeichen zu entfernen:
<code class="language-csharp">Regex.Replace(inputString, @"[^\u0000-\u007F]", string.Empty);</code>
SQL CLR-Funktion für erweiterte Funktionalität
Da SQL Server keine native Unterstützung für reguläre Ausdrücke bietet, erweitert die Erstellung einer SQL CLR-Funktion seine Möglichkeiten. Das folgende Beispiel, StackOverflowRegexReplace
, führt reguläre Ausdrucksersetzungen durch:
<code class="language-csharp">public static SqlString Replace(SqlString sqlInput, SqlString sqlPattern, SqlString sqlReplacement) { string input = (sqlInput.IsNull) ? string.Empty : sqlInput.Value; string pattern = (sqlPattern.IsNull) ? string.Empty : sqlPattern.Value; string replacement = (sqlReplacement.IsNull) ? string.Empty : sqlReplacement.Value; return new SqlString(Regex.Replace(input, pattern, replacement)); }</code>
So nutzen Sie diese Funktion:
StackOverflow.dll
Assembly.CREATE ASSEMBLY
.CREATE FUNCTION
.Beispielverwendung:
<code class="language-sql">SELECT [dbo].[StackOverflowRegexReplace] ('Hello Kitty Essential Accessory Kit', '[^\u0000-\u007F]', '') -- Result: Hello Kitty Essential Accessory Kit</code>
Diese Methoden bereinigen effektiv nicht standardmäßige Zeichen aus Ihren SQL Server-Varchar-Spalten, verbessern die Datenintegrität und verhindern potenzielle Probleme.
Das obige ist der detaillierte Inhalt vonWie entferne ich seltsame Zeichen aus SQL Server-Varchar-Spalten mithilfe von C# und SQL CLR?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!