SQL Server T-SQL Programmierung

Dieses Seminar vermittelt tiefgreifende Programmiertechniken in Transact-SQL (T-SQL) für den Microsoft SQL Server. Im Mittelpunkt stehen die Implementierung datenbanknaher Geschäftslogik, die Entwicklung serverseitiger Objekte sowie die Performance-Optimierung. Ziel ist, dass du robuste, sichere und hochperformante Datenbankanwendungen schreibst — in zwei Tagen.

Für wen ist dieses Seminar

Datenbankentwickler, Softwarearchitekten und Datenbankadministratoren, die über einfache SELECT-Abfragen hinausgehen und komplexe, performante Geschäftslogik direkt auf dem Microsoft SQL Server implementieren möchten.

Das Angebot richtet sich an Unternehmen, Behörden und Selbstständige.

Was du mitbringen solltest

Fundierte Grundkenntnisse in SQL (DML, DDL) sowie sicherer Umgang mit relationalem Datenbankdesign.

Geschult wird auf der jeweils aktuellen Version; bei Inhouse-Seminaren gern auch auf der Version, die ihr im Einsatz habt.

Detaillierte Inhalte

T-SQL Grundlagen und Skript-Strukturierung

  • Architektur und Ausführungskontext (SQL Server Engine)
  • Deklaration und Zuweisung lokaler Variablen (DECLARE, SET, SELECT)
  • Skriptsteuerung mit Batches (GO)
  • Integrierte Systemfunktionen und globale Variablen (@@ERROR, @@ROWCOUNT, @@SERVERNAME)
  • Synonyme und Sequenzen implementieren

Kontrollstrukturen und Ablaufsteuerung

  • Bedingte Anweisungen: IF...ELSE, CASE-Ausdrücke
  • Schleifenkonstrukte: WHILE, BREAK, CONTINUE
  • Fehlerbehandlung: TRY...CATCH-Blöcke implementieren
  • Gezieltes Werfen von Ausnahmen: THROW und RAISERROR

Komplexe Abfragetechniken und Datenanalyse

  • Common Table Expressions (CTEs): Rekursive und nicht-rekursive CTEs
  • Window Functions: OVER()-Klausel, ROW_NUMBER, RANK, DENSE_RANK, NTILE
  • Analytische Funktionen: LAG, LEAD, FIRST_VALUE, LAST_VALUE
  • Datenumbau: PIVOT und UNPIVOT Operatoren
  • Arbeiten mit hierarchischen Daten (HierarchyID)

Temporäre Datenstrukturen

  • Temporäre Tabellen (#Temp und ##Temp)
  • Tabellenvariablen (@TableVar)
  • Gegenüberstellung und Performance-Aspekte: Temp-Tabellen vs. Tabellenvariablen vs. CTEs
  • Tabellenwertparameter (Table-Valued Parameters - TVP) zur Massendatenübergabe

Programmierung von Datenbankobjekten

  • Gespeicherte Prozeduren (Stored Procedures): Parameter (Input/Output), Rückgabewerte
  • Benutzerdefinierte Funktionen (UDFs): Skalarfunktionen, Inline-Tabellenwertfunktionen (iTVF), Multi-Statement-Tabellenwertfunktionen (mTVF)
  • Trigger-Programmierung: DML-Trigger (AFTER, INSTEAD OF) und DDL-Trigger
  • Analyse der virtuellen Tabellen INSERTED und DELETED in Triggern

Transaktionsmanagement und Nebenläufigkeit

  • ACID-Prinzipien und Transaktionssteuerung (BEGIN, COMMIT, ROLLBACK)
  • Verschachtelte Transaktionen und Savepoints (SAVE TRANSACTION)
  • Isolationsstufen (Isolation Levels): READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ, SERIALIZABLE, SNAPSHOT
  • Erkennung und Vermeidung von Deadlocks (Locking & Blocking)

Iterative vs. Mengenbasierte Verarbeitung

  • Deklaration und Nutzung von Cursorn (DECLARE CURSOR, FETCH)
  • Performance-Fallen bei iterativer Verarbeitung (Row-by-Agonizing-Row - RBAR)
  • Strategien zur Umschreibung von Cursorn in mengenbasierte (Set-based) Lösungen

Dynamisches SQL und Performance-Optimierung

  • Ausführung dynamischer SQL-Strings (EXEC())
  • Sicheres und parametrisiertes dynamisches SQL mit sp_executesql
  • Prävention von SQL-Injection-Angriffen
  • Grundlagen der Abfrageoptimierung: Execution Plans (Ausführungspläne) lesen
  • Sargability (Search Argument Able) und indexfreundliches Schreiben von T-SQL Code

Vertiefung (optional, z. B. im Inhouse-Seminar)

  • MERGE für kombiniertes Einfügen, Ändern und Löschen in einer Anweisung, und die OUTPUT-Klausel zur Rückgabe geänderter Zeilen
  • CROSS APPLY und OUTER APPLY: zeilenweise Verknüpfung mit einer tabellenwertigen Ausdrucksfunktion, wo ein normaler JOIN nicht ausreicht
  • JSON in T-SQL: OPENJSON zum Zerlegen, FOR JSON zur Ausgabe
  • SET XACT_ABORT ON in der Fehlerbehandlung: warum eine Transaktion ohne diese Einstellung nach einem Laufzeitfehler in einem inkonsistenten Zustand hängen bleiben kann
  • Die Frame-Klausel der Fensterfunktionen (ROWS/RANGE): welchen Bereich OVER() tatsächlich betrachtet, und warum das Ergebnis sonst überrascht

Dauer: 2 Tage

Was du danach kannst

  • Gespeicherte Prozeduren und benutzerdefinierte Funktionen mit sauberer Parameterübergabe und Fehlerbehandlung schreiben
  • Rekursive CTEs und Window Functions für komplexe Auswertungen einsetzen
  • Eine Cursor-Lösung in eine mengenbasierte Abfrage umschreiben und den Performance-Unterschied benennen
  • Dynamisches SQL sicher mit sp_executesql parametrisieren und SQL-Injection vermeiden
  • Transaktionen mit der passenden Isolationsstufe steuern und Deadlocks erkennen und vermeiden
  • Einen Ausführungsplan lesen und eine Abfrage gezielt indexfreundlich (sargable) formulieren

Verwandte Seminare

Wie sich Änderungen an einer Tabelle lückenlos protokollieren lassen — mit den Fallstricken, an denen die meisten Umsetzungen scheitern, und der Abgrenzung zu Change Tracking, CDC und Temporal Tables —, zeigt unser Artikel SQL Server Audit-Trigger. Warum eine Schleife über Zeichenketten fast immer die falsche Antwort ist und was stattdessen taugt, steht in T-SQL: Zeichenketten zerlegen.

Dein Dozent

Frank Glück schult seit mehr als 30 Jahren und programmiert seit fast 40 Jahren. Seit 1999 ist er auch als Dozent für die GFU tätig.

Häufige Fragen (FAQ)

Für wen eignet sich dieses T-SQL-Programmierseminar?

Für Datenbankentwickler, Softwareentwickler, Analysten und DBAs, die über einfache SELECT-Abfragen hinausgehen und komplexe, performante Geschäftslogik direkt auf dem Microsoft SQL Server implementieren möchten.

Welche fortgeschrittenen T-SQL-Themen werden vertieft?

Im Fokus stehen Window Functions (Analytische Funktionen, ROW_NUMBER, LEAD/LAG), Common Table Expressions (rekursive CTEs), dynamisches SQL, Exception Handling mit TRY...CATCH sowie Transaktionsisolation und Sperr-Ebenen zur Vermeidung von Deadlocks. Im optionalen Vertiefungsmodul kommen MERGE, OUTPUT, APPLY und JSON-Funktionen dazu.

Behandelt das Seminar auch Performance-Tuning von Abfragen?

Ja, Performance ist ein Kernbestandteil: Du analysierst grafische Ausführungspläne, identifizierst teure Table-Scans und Spills in die TempDB und optimierst Abfragen gezielt mit passenden Index-Strategien.

Wie wird das Seminar durchgeführt?

Das Seminar findet wahlweise als Inhouse-Training bei dir im Unternehmen (Köln, NRW, bundesweit) oder als interaktives Online-Seminar remote statt.

Individuell anfragen

Die Anfrage ist unverbindlich und kostenlos; Umfang und Konditionen klären wir danach individuell.