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:
THROWundRAISERROR
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:
PIVOTundUNPIVOTOperatoren - Arbeiten mit hierarchischen Daten (HierarchyID)
Temporäre Datenstrukturen
- Temporäre Tabellen (
#Tempund##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
INSERTEDundDELETEDin 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)
MERGEfür kombiniertes Einfügen, Ändern und Löschen in einer Anweisung, und dieOUTPUT-Klausel zur Rückgabe geänderter ZeilenCROSS APPLYundOUTER APPLY: zeilenweise Verknüpfung mit einer tabellenwertigen Ausdrucksfunktion, wo ein normalerJOINnicht ausreicht- JSON in T-SQL:
OPENJSONzum Zerlegen,FOR JSONzur Ausgabe SET XACT_ABORT ONin 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 BereichOVER()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_executesqlparametrisieren 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
- PostgreSQL Administration und PL/pgSQL-Programmierung — dieselben Themen für den PostgreSQL-Stack, bewusst parallel geschnitten zum Umstieg in beide Richtungen
- SQL Server Reporting Services — für die Berichtsschicht, die auf T-SQL-Datasets aufsetzt
- SQL Server Analysis Services (MOLAP) — für multidimensionale Auswertungen auf Basis relationaler Daten
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.