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: 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

Dauer 2 Tage