Navigation

T-SQL

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.