Einstieg T-SQL Neuerungen SQL Server 2008

SQL Server 2008 hat viele Änderungen gegenüber SQL Server 2005 mitgebracht. Diese Änderungen sind nicht so deutlich wie diejenigen zwischen SQL Server 2000 und SQL Server 2005, aber erleichtern das Arbeiten mit SQL Server deutlich bzw. bessern das nach, was bei SQL Server 2005 vermisst wird - leider nicht ohne etwas für zukünftige Versionen aufzuheben.

Die Artikel dieser Reihe beziehen sich auf Neuheiten in T-SQL bei SQL Server 2008, die nur einen Teil der gesamten Änderungen ausmachen.

Vom Leser wird erwartet, dass er bereits professionelle Erfahrungen in der Entwicklung mit T-SQL im SQL Server 2005 hat.

Die erste Reihe besteht neben dieser Einleitung aus folgenden Artikeln

Direkt lauffähige Beispiele sind gesondert markiert, andere dienen der Illustration.

Zum Abschluss wird ein Anwendungsfall aufgezeigt, der den gemeinsamen Einsatz der neuen Möglichkeiten demonstriert. Hierfür wird ein lauffähiges Beispiel gezeigt.

Um diese Einleitung auch für den neugierigen Leser interessant zu machen, hier die ersten Erweiterungen, die in der Hauptsache Tipparbeit sparen, aber das Arbeiten mit älteren Versionen erschweren, wenn man sich erst daran gewöhnt hat:

DECLARE, COMPOUND OPERATOR und ROW CONSTRUCTORS

DECLARE hat mit 2008 die Erweiterung erfahren, dass man nun in der Deklaration die Variable direkt zuweisen kann. Was vorher mit

declare @i int;
set @i = 1;

zu bewerkstelligen war, funktioniert nun auch mit direkter Zuweisung

declare @i int = 1;

Dies gilt natürlich für alle Arten der Zuweisung, die bisher auch möglich waren

declare @Config int =
(
select
Config
from dbo.Configuration
where
ConfigType = 'Maximum'
);

Aus anderen Programmiersprachen längst bekannt, der COMPOUND OPERATOR. Ein der Variablenzuweisung vorangestellter Rechenoperator, der das Ergebnis der Berechnung der Variable zuweist:

set @a = @a + 1;

kann nun durch

set @a += 1;

abgekürzt werden.

Das funktioniert natürlich nicht nur mit Addition, sondern auch mit allen anderen Grundrechenarten, Modulo und logischem UND, ODER und EXKLUSIVES ODER.

Aber Achtung, ein Dreher bei Addition und Subtraktion kann leicht übersehen werden, und der Fehler ist schwer zu identifizieren:

set @a =- 1 ist selbstverständlich nicht falsch, sondern -1, statt @a - 1.

ROW CONSTRUCTORS hören sich vielsagend an, sind aber letztendlich nur eine Erweiterung der VALUES-Klausel:

Was vor 2008 noch so in einer Transaktion eingefügt würde

insert into dbo.tab(ID, Description)
select 1, 'Nothing special' union all
select 2, 'Interessting' union all
select 3, 'Important';

ist mit SQL Server 2008 nun so möglich

insert into dbo.tab(ID, Description) values
(1, 'Nothing special'),
(2, 'Interessting'),
(3, 'Important');

Interessant ist die Möglichkeit die VALUES Klausel für eine table expression zu verwenden:

select
ID
,Quartal
from
(
values
(1, 'Quartal 1'),
(2, 'Quartal 2'),
(3, 'Quartal 3'),
(4, 'Quartal 4')
) Q (ID, Quartal)

Im nächsten Artikel wird es spannender mit den TABLE VALUED PARAMETERS. Ein Feature, auf das lange gewartet wurde, aber leider nicht vollständig zufrieden stellt...

Über den Autor:
Christoph Ingenhaag arbeitet seit vielen Jahren mit SQL Server. Seit Anfang 2008 ist er als freier Mitarbeiter Data Platform Architect bei Solid Quality Mentors. Für Solid Quality Mentors hat er das T-SQL Modul des Kurses http://learning.solidq.com/ce/CourseDetail.aspx?CourseScheduleId=108 geschrieben. Er ist MCP, MCTS SQL Server 2005 und MCIPT Database Developer. Er gibt in dieser Artikelreihe seine persönliche Meinung wieder.

Über Solid Quality Mentors:
Solid Quality Mentors ist ein globaler Anbieter für fortgeschrittene Weiterbildung und Lösungen für die Microsoft SQL Server Plattform. Solid Quality Mentors kombiniert in die Tiefe gehende technische Expertise und praktische Implementationserfahrung mit einem Commitment zu Ausbildung und Training. Solid Quality Mentors liefert das gebündelte Know-how von über 80 weltweit anerkannten Mentoren und über 40 MVPs (Microsoft Most Valuable Professionals). Unter Ihnen finden sich die Autoren von SQL Server Standardwerken wie z.B. der Inside SQL Server Reihe und Vortragende von mehreren hundert Sessions auf internationalen Events in den letzten Jahren. Solid Quality Mentors ist für das Design von Microsoft SQL Server Kursen verantwortlich und liefert laufend Fortbildungskurse im Datenbank- bzw. Entwicklerbereich für Microsoft Mitarbeiter weltweit. Mehr unter www.solidq.com