SQL Server T-SQL Programmierung
Einleitung
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 das Schreiben robuster, sicherer und hochperformanter Datenbankanwendungen.
Zielgruppe & Voraussetzungen
- Zielgruppe: Datenbankentwickler, Softwarearchitekten und Datenbankadministratoren.
- Voraussetzungen: Fundierte Grundkenntnisse in SQL (DML, DDL) sowie sicherer Umgang mit relationalem Datenbankdesign.
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) - Synonme 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
Dauer 2 Tage