MS Transact SQL (T-SQL) Programmering

Formål

At give deltagere viden og færdigheder til at kunne forstå og anvende de mest efterspurgte dele af MS Transact SQL (T-SQL), som er: 

  • Udvidelser til Standard SQL
  • Specifikke for Microsoft SQL Server
  • Nødvendige i den daglige drift af Microsoft SQL Server

Beskrivelse

I den daglige drift af Microsoft SQL Serverne har man brug for dele af Transact-SQL-syntaksen, som ligger uden for SQL-standarden. Kurset består af to halvdele:

1. HALVDEL: NØDVENDIGE TEKNIKKER

Vi starter kurset med at introducere tre typer kortlivede objekter: Skalare variable, Tabel-variable og Midlertidige Tabeller - samt: 

  • Hvordan de oprettes og befolkes. 
  • Hvordan de bruges som mellemregninger i komplekse koder. 
  • Hvad forskellen er på Tabel-variable og Midlertidige tabeller, og hvornår den ene benyttes frem for den anden. 
  • Hvordan de bygges ind i Procedurer (eng. stored procedures) hhv. Funktioner (eng. User-defined functions).

Ligeledes introducerer vi Flow Control-elementerne IF/THEN/ELSE og WHILE-løkker, som kan styre rækkefølgen de enkelte SQL-statements afvikles i. Disse kan også kodes ind i Procedurer og Funktioner.

Næsten alle databaser indeholder Dato/Tid-registreringer, og det er nødvendigt at kunne håndtere disse - herunder med højest mulig performance. Dette er et stort emne på kurset, og der indgår mange demonstrationer samt øvelser.

2. HALVDEL: CONTAINER-objekter 

Der er vægtige design- og sikkerhedsmæssige grunde til ikke at tilgå en databases tabeller direkte fra rapportgeneratorerne. I stedet hentes data gennem container-objekterne Views og Procedurer. Argumenterne for dette og teknikken dertil gennemgås detaljeret på kurset.

Et andet vigtigt aspekt ved Container-objekterne er at centralisere dele af sin forretningslogik gennem Procedurer og Funktioner. Performance-aspekterne ved Procedurer og Funktioner gennemgås ligeledes detaljeret på kurset.

LINIEN I KURSET

Vi har lagt en linie, hvor kursisten først introduceres til de nødvendige teknikker, for efterfølgende at anvende dem i Procedurer og Funktioner. 

For at programmere SQL mod en Microsoft SQL Server kræves en kombination af tankegangen bag Standard SQL og syntaksen i Transact-SQL.

Kursusrækken SU-240 --> SU-241 --> SU-242 giver en solid baggrund for denne kombination.

Bemærk venligst at SU-242 ikke er et begynderkursus.

Forudsætninger

  • SU-240 - SQL Programmering Grundkursus 

Materialer

  • Kursusmateriale på dansk

Tilhørende test

  • TSU-242 - Transact SQL Programming 

Indhold

  • Skalare Variable
    • Erklære skalare variable - fordele og begrænsninger
    • Scope for skalar variabel
    • Befolke og beregne v.hj.a skalare variable
  • Tabel-variable
    • Erklære tabel-variable
    • Scope for Tabel Variabel
    • Befolke, ændre i samt beregne v.hj.a Tabel-variable
  • Midlertidige tabeller ( Temporære tabeller )
    • Oprette midlertidige tabeller
    • Scope for Midlertidig Tabel
    • Befolke, ændre i samt beregne v.hj.a Midlertidige tabeller
    • Hvornår vælge Tabel-variabel vs Midlertidig Tabel ?
  • Arbejde med Dato/Tid 
    • Dato/Tid datatyper - forskelle og fordele
    • Sikre at Dato/Tid altid læses korrekt ved input
    • Konvertere output af Dato/Tid 
    • De indbyggede Dato/Tid funktioner 
    • Beregninger på Dato/Tid - mange øvelser her !
    • Microsofts valg m.h.t Dato/Tid beregninger - undgå fælderne
  • Flow Control kommandoer
    • IF - THEN - ELSE kommandoen
    • IF EXISTS kommandoen
    • WHILE løkker
    • Simple øvelser som fremhæver pointerne
  • Views
    • Argumenterne for at benytte Views
    • Begrænsningerne ved Views
  • Stored Procedures 
    • Hvad består en Procedure af - egenskaber og definition 
    • Scope for Procedure - hvordan afsluttes den ?
    • Kald af Procedure - syntax og best practices
    • Input parametre
    • Resultatsæt fra Procedurer
    • Output parametre
    • Return Values
    • Vigtigt: Hvordan arbejde videre med de tre typer output fra Procedurer 
    • System Stored Procedures
  • User-defined functions ( UDF ) 
    • Hvad består en UDF af - egenskaber og definition 
    • De tre typer UDF - forskelle, syntax
    • Scope for UDF - hvordan afsluttes funktionen ?
    • Kald af UDF - syntax og best practices
    • Input parametre
    • Vigtigt: Performance for de tre typer funktioner - best practices
    • System Functions