T-SQL Ninja #44

MAXDOP

Was ist MAXDOP? Euch ist beim Ansehen von Ausführungsplänen im SQL Server sicher schon einmal aufgefallen, dass immer wieder an bestimmten Operationen zwei kleine Pfeile auf gelbem Grund auftreten (im SQL Server Management Studio) und die Operation „Parallelism (Gather Streams)“. Was das bedeutet ist, vereinfacht gesagt, dass der SQL Server an einigen Stellen entscheidet, bestimmte […]

T-SQL Ninja #43

SP_RENAME

Was ist SP_RENAME? Wenn ihr in eurer Datenbank Objekte habt, die ihr umbenennen möchtet, dann könnt ihr im SQL Server Management Studio mit Rechtsklick auf das Objekt eine Umbenennung durchführen. Wenn ihr das Umbenennen aber ein wenig kontrollierter und am besten noch verteilbar machen möchtet, dann kommt ihr um das Skripten des Vorgangs nicht herum […]

T-SQL Ninja #42

AT TIME ZONE

Was ist AT TIME ZONE? Wer kennt das nicht? Ihr seid in Seeheim Jugendheim und wollt euren Ninja-Kollegen in Kyoto anrufen, wisst aber gar nicht, wie spät es bei ihm gerade ist. Ihr könnt die lokale Zeit in Kyoto natürlich googeln, allerdings könnt ihr die Zeit in Tokyo Standard Time auch im SQL Server abfragen. […]

T-SQL Ninja #41

STRING_ESCAPE

Was tut STRING_ESCAPE? Ihr habt hier nun schon einige Funktionen zur Manipulation von Zeichenketten (Strings) kennengelernt. In diese Reihe passt auch STRING_ESCAPE. Die STRING_ESCAPE-Funktion ist eine Funktion, die bei einer Zeichenkette Sonderzeichen ersetzt, damit diese Zeichenkette an anderer Stelle verwendet werden kann. Ein klassisches Beispiel für das Escapen von Zeichenketten ist, dass ihr um SQL Injection-Attacken zu […]

T-SQL Ninja #40

STRING_SPLIT

Was tut STING_SPLIT? In den Wochen hattet ihr hier einige Möglichkeiten kennengelernt, um kommaseparierte Listen in SQL zu erzeugen, neben STUFF in Kombination mit SELECT FOR XML und STRING_AGG auch CONCAT_WS. In dieser Woche möchten wir den umgekehrten Weg gehen und eine Zeichenkette, die kommaseparierte Werte enthält in ihre Bestandteile zerlegen. Seit dem SQL Server 2016 gibt es in der relationalen Datenbankengine […]

T-SQL Ninja #39

TRANSLATE

Was ist TRANSLATE (nicht)? Leider ist TRANSLATE nicht die T-SQL Syntax als Frontend für die Cognitive Services Translator API. Das heißt ihr könnt die TRANSLATE-Funktion nicht verwenden, um eure Produktbeschreibungen in Suaheli zu übersetzen. Schade, doch dafür bräuchtet ihr die Common Language Runtime im SQL Server (CLR, vielleicht wäre das ja auch mal einen Ausflug ins Dojo wert…). […]

T-SQL Ninja #38

CONCAT und CONCAT_WS

Was tun CONCAT und CONCAT_WS? Die CONCAT-Funktion ist eine Funktion aus dem Bereich der Zeichenketten-Manipulation. Ähnlich wie ihr es schon bei STUFF und STRING_AGG kennengelernt hattet, verknüpfen diese Funktionen Zeichenketten miteinander. Anders als STRING_AGG und STUFF in Kombination mit SELECT FOR XML, aggregieren CONCAT und CONCAT_WS allerdings keine Zeilen, das heißt die Einträge, die zusammengefasst werden sollen, müssen bereits in Spalten vorliegen. Wie verwendet man CONCAT und CONCAT_WS? Sehen […]

T-SQL Ninja #37

COALESCE (und ein wenig ISNULL)

Was tut COALESCE? Angenommen ihr habt in eurer Datenbank mehrere Spalten einer Tabelle, die alle NULL-Werte enthalten dürfen. Nun möchtet ihr den Wert der ersten Spalte, wenn dieser aber nicht vorhanden ist, dann den Wert der zweiten Spalte, wenn dieser nicht vorhanden ist, dann denn Wert der dritten Spalte und so weiter… Es gibt nun immer […]

T-SQL Ninja #36

STRING_AGG

Was ist STRING_AGG? In der letzten Woche hattet ihr gesehen, wie ihr mit STUFF und SELECT FOR XML eine kommaseparierte Liste aus den Zeilen einer Tabelle erzeugen könnt. Seit dem SQL Server 2017 ist das mit der Einführung der STRING_AGG-Funktion noch einfacher geworden. Die STRING_AGG-Funktion konkateniert Zeichenketten und fügt ein Trennzeichen ein. Was könnt ihr mit STRING_AGG so machen? Erinnern wir […]

T-SQL Ninja #35

STUFF

Was ist STUFF? STUFF ist eine Funktion zur Manipulation von Zeichenketten. Die Funktion „stopft“ eine Zeichenkette in eine andere, daher der recht bildlich zu verstehende Name. Traditionell gehört String-Manipulation nicht unbedingt zu den großen Stärken von relationalen Datenbanken und der SQL-Syntax, STUFF gehört zu den Funktionen aus diesem Bereich, die euch, wenn ihr sie beherrscht das Leben deutlich […]