T-SQL ist die Abfragesprache eines MS SQL Servers.
T-SQL unterscheidet sich in Sichten nicht allzu sehr, von Jet-SQL.
Allerdings gibt es zB kein Last/First mehr.
Gespeicherte Prozeduren / benutzerdefinierte Funktionen stellen dann das Highlight dar.
Gespeicherte Prozeduren stellen mehr dar, als Aktionsabfragen.
In Prozeduren kann man wirklich arbeiten!
Dort kann man zB eine Abfragesyntax zusammensetzen und dann ausführen:
CREATE PROCEDURE dbo.stp_ExecSQL @TabName varChar(20) AS DECLARE @strSQL As varChar(100) @strSQL = 'SELECT * FROM ' + @TabName EXEC (@strSQL) GO
Eine Prozedur wird immer mit einem CREATE PROCEDURE eingeleitet.
Danach folgt der Benutzer und der Name der Anweisung.
Nun kommen Eingabeparameter für die gespeicherte Prozedur, gefolt von einem AS.
Wenn man nun Variablen innerhalb der Prozedur verwenden will, so deklariert man diese mit einem DECLARE.
Danach kommen dann die Anweisungen und am Ende ein GO.
Ist doch ganz einfach, neh? ;)
Benutzerdefinierte Funktionen stellen separate Funktionen dar, die man in gespeicherten Prozeduren / Sichten einsetzen kann.
CREATE FUNCTION dbo.Counter2Time (@SekInt As Int) RETURNS Char(10) AS BEGIN DECLARE (@Stunden As varChar(2), @Minuten As varChar(2), @Sekunden As varChar(2), @Rest As Int, @Zeit As Char(10)) SET @Stunden = ( @SekInt - @SekInt % 3600 ) / 3600 IF @Stunden <> 0 SET @Rest = @SekInt - @Stunden * 3600 ElSE SET @Rest = @SekInt IF Len(@Stunden) = 1 SET @Stunden = '0' + @Stunden SET @Minuten = ( @Rest - @Rest % 60 ) / 60 IF @Minuten <> 0 SET @Rest = @Rest - @Minuten * 60 ElSE SET @Rest = @SekInt IF Len(@Minuten) = 1 SET @Minuten = '0' + @Minuten SET @Sekunden = @Rest IF Len(@Sekunden) = 1 SET @Sekunden = '0' + @Sekunden SET @Zeit = @Stunden + ':' + @Minuten + ':' + @Sekunden RETURN @Zeit END
Mit dieser Funktion wird ein Sekundenzähler als Uhrzeit ausgegeben.
Auch eine Funktion beginnt mit einem CREATE gefolgt vom Bezeichner und dem Funktionsnamen.
Danach kommen dann die erwarteten Übergabeparameter.
Bei einer Funktion muss man allerdings angeben, was zurückgeliefert wird.
Der Beginn der Funktion wird durch ein BEGIN angegeben.
Danach kommen die Variablen innerhalb der Funktion und die Anweisung als solche.
Das Ende bildet dann die Übergabe des Wertes an die Funktion, gefolgt von einem END.