T-SQL Ninja #28

SHOWPLAN

Was bedeutet SHOWPLAN? Wenn ihr euch schon immer mal gefragt habt, was der SQL Server eigentlich macht zwischen dem Zeitpunkt wo ihr mit Angstschweiß auf der Stirn im Azure Data Studio auf F5 gedrückt habt und dem Zeitpunkt wo euch Ergebnisse eurer Abfrage angezeigt werden, dann ist SHOWPLAN die Lösung für euch. Eine Warnung sei aber vorweg […]

T-SQL Ninja #27

Temporäre Objekte

Was sind temporäre Objekte? Grundsätzlich ermöglicht euch der SQL Server das Anlegen temporärer Objekte, mit denen ihr arbeiten könnt. Das ist praktisch, da ihr nicht unbedingt jedes Zwischenergebnis oder jede Hilfstabelle in eurer Datenbank persistieren möchtet, wenn ihr mit größeren Datenmengen arbeitet. Temporär bedeutet dabei, dass die Tabellen in der tempdb gespeichert werden und automatisch gelöscht werden. […]

T-SQL Ninja #26

Sequence

Was sind SEQUENCEs? Eine der wichtigsten SEQUENCEs hatten wir euch bereits im letzten Randori vorgestellt. Generell ist ein SEQUENCE-Objekt die Verallgemeinerung des IDENTITY-Attributs. Denn während das IDENTITY-Attribut dafür sorgt, dass jede neue Zeile eine neue Zahl zugewiesen bekommt, ist das SEQUENCE-Objekt ein Objekt, das Reihen von Zahlen erzeugt. Dabei ist es anders als das IDENTITY-Attribut nicht an ein anderes Datenbankobjekt (also eine […]

T-SQL Ninja #25

IDENTITY

Was ist IDENTITY? IDENTITY ist eine Eigenschaft für Spalten einer Tabelle. Sie kann verwendet werden, um Schlüssel zu erzeugen, also eindeutige, fortlaufende Werte in einer Spalte. Dabei garantiert der SQL Server, dass auch mehrere parallel laufende Transaktionen verschiedene Werte für die Spalte erhalten. Wie könnt ihr mit IDENTITY arbeiten? Die IDENTITY-Eigenschaft bekommt zwei Werte übergeben, den SEED, also […]

T-SQL Ninja #24

SELECT TOP 0 INTO

Was tut SELECT TOP 0 INTO? Gelegentlich kommt es vor, dass ihr eine leere Tabelle erzeugen möchtet, um die Daten einer Abfrage zu speichern. Ihr könnt nun natürlich aus allen Quelltabellen die Metadaten aller Spalten in der Abfrage prüfen und ein DDL Statement schreiben. Das kann aber bei Abfragen mit mehreren Joins und möglicherweise noch […]

T-SQL Ninja #23

TRIGGER

Was sind TRIGGER? Ihr habt im Dojo nun schon oft gehört, dass SQL immer dann effektiv ist, wenn ihr auf Datensätzen operiert und dass SQL eine Sprache ist, die Mengenoperationen ermöglicht. Deshalb sind auch die Möglichkeiten zur Ablaufsteuerung in SQL im Vergleich zu anderen Programmiersprachen eher dünn gesät, einige davon habt ihr bereits an dieser […]

T-SQL Ninja #22

CASE WHEN

Was tut CASE WHEN? In der letzten Woche habt ihr bereits das IIF-Statement kennengelernt und im Zuge dessen auch direkt CASE WHEN-Statements gesehen. Heute möchten wir die CASE WHEN-Statements etwas genauer unter die Lupe nehmen. Wie IIF ist auch CASE WHEN ein Konstrukt aus dem Bereich der Logik-Funktionen, die es euch ermöglichen, auf bestimmte Werte zu reagieren. Wofür könnt ihr CASE WHEN […]

T-SQL Ninja #21

IIF

Was ist IIF? Wofür könnt ihr IIF verwenden? Die IIF-Funktion ist also zunächst einmal eine kürzere Schreibweise für CASE–WHEN-Abfrage-Konstrukte. Nehmen wir uns als Beispiel die Wide World Importers Datenbank und fragen wir darin die StockItemTransaction-Tabelle ab. Dabei möchten wir uns einmal die TransactionTypeID näher ansehen. Dabei fällt uns auf, dass in der Tabelle nur drei Transaktionstypen vorkommen: Wenn wir nun […]

T-SQL Ninja #20

CURSOR

Was sind CURSOR? In den letzten beiden Wochen hattet ihr im Dojo das WHILE-Statement kennengelernt und angewendet um Batches von Zeilen zu löschen. Wir hatten euch dabei den Warnhinweis gegeben, dass der SQL Server (so wie fast jede relationale Datenbankengine) primär darauf ausgelegt ist, mit Datenmengen, also mit mehreren Zeilen zu operieren. Doch was ist, wenn […]

T-SQL Ninja #19

Batches

Was sind Batches? Manchmal kann es vorkommen, dass ihr Operationen auf sehr großen Tabellen machen müsst. Dann kann es vorkommen, dass aufgrund des Transaktions-Verhaltens eurer Datenbank kein Platz mehr in der TempDB vorhanden ist. Das liegt daran, dass Relationale Datenbanken den ACID-Prinzipien folgen, nach denen Operationen Atomar sein sollen, also wird beispielsweise ein DELETE-Statement komplett ausgeführt […]