Robert Panther Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012



Ähnliche Dokumente
Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012

Robert Panther. Datenbanken entwickeln mit SQL Server 2008 Express Edition

Robert Panther. Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012

1.6 Zusammenfassung... 19

Inhaltsverzeichnis. Vorwort Teil I Einführung. 1 Einleitung Der Microsoft SQL Server... 19

Inhaltsverzeichnis. Vorwort Vorwort zur 2. Ausgabe Teil I Einführung. 1 Einleitung Der Microsoft SQL Server...

Inhaltsverzeichnis. Vorwort 11. Teill Einführung

Inhalt. Teil I Einführung... i

Inhaltsverzeichnis. Vorwort 13. Vorwort zur 2. Ausgabe 14. Teil I Einführung

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM Office Add-Ins Handbuch

SANDBOXIE konfigurieren

Installationsanleitung dateiagent Pro

Titel. SCSM ITIL - CMDB - neue CI Klasse erstellen und benutzen. Eine beispielhafte Installationsanleitung zur Verwendung im Testlab

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Inhaltsverzeichnis. 1 Der SQL Server 2008 stellt sich vor Die grafischen Tools des SQL Server Eine neue Datenbank erstellen 87

Brainloop Dox Häufig gestellte Fragen

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

ADDISON tse:nit Hinweise zum Umstieg von SQL 2000 auf SQL 2008 im tse:nit Umfeld

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

12. Dokumente Speichern und Drucken

Im Folgenden wird Ihnen an einem Beispiel erklärt, wie Sie Excel-Anlagen und Excel-Vorlagen erstellen können.

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Installation und Konfiguration Microsoft SQL Server 2012

Adobe Photoshop. Lightroom 5 für Einsteiger Bilder verwalten und entwickeln. Sam Jost

Musterlösung für Schulen in Baden-Württemberg. Windows Basiskurs Windows-Musterlösung. Version 3. Stand:

2. Einrichtung der ODBC-Schnittstelle aus orgamax (für 32-bit-Anwendungen)

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

NET.Compact Framework

Installation der SAS Foundation Software auf Windows

pro4controlling - Whitepaper [DEU] Whitepaper zur CfMD-Lösung pro4controlling Seite 1 von 9

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

bizsoft Rechner (Server) Wechsel

Anleitung zum Extranet-Portal des BBZ Solothurn-Grenchen

OP-LOG

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Installation SQL- Server 2012 Single Node

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen mit SQL Server-Daten

Einfache und effiziente Zusammenarbeit in der Cloud. EASY-PM APPs und Add-Ins

CSS-Grundlagen. Etwas über Browser. Kapitel. Die Vorbereitung

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

3 Richtlinienbasierte Verwaltung und Multi-Server- Administration

Daten-Synchronisation zwischen dem ZDV-Webmailer und Outlook ( ) Zentrum für Datenverarbeitung der Universität Tübingen

S TAND N OVEMBE R 2012 HANDBUCH DUDLE.ELK-WUE.DE T E R M I N A B S P R A C H E N I N D E R L A N D E S K I R C H E

Registrierung am Elterninformationssysytem: ClaXss Infoline

Wiederherstellen der Beispieldatenbanken zum Buch Microsoft Project 2010

Albert HAYR Linux, IT and Open Source Expert and Solution Architect. Open Source professionell einsetzen

Dokumentation für die software für zahnärzte der procedia GmbH Onlinedokumentation

VB.net Programmierung und Beispielprogramm für GSV

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Wie richten Sie Ihr Web Paket bei Netpage24 ein

Upgrade von Windows Vista auf Windows 7

PHPNuke Quick & Dirty

Installationsbeschreibung Import / ATLAS / PV Zollsystem für die EDV-Abteilung

Lizenzierung von StarMoney 9.0 bzw. StarMoney Business 6.0 durchführen

Berechtigungen im Kalender Anleitung für die Rechtevergabe im Outlook Kalender FHNW, Services, ICT

Microsoft Dynamics NAV 2013 R/2 Installationsanleitung. Inhalt: Begleitmaterial des ERP Übungsbuchs:

SCHRITT FÜR SCHRITT ZU IHRER VERSCHLÜSSELTEN

Die neue Datenraum-Center-Administration in. Brainloop Secure Dataroom Service Version 8.30

Stundenerfassung Version 1.8 Anleitung Arbeiten mit Replikaten

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Lokale Installation von DotNetNuke 4 ohne IIS

MS Office XP-CD inkl. SP3 erstellen

Reporting Services und SharePoint 2010 Teil 1

Erstellen eines Formulars

Handbuch. SIS-Handball Setup

Microsoft SharePoint 2013 Designer

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

robotron*e count robotron*e sales robotron*e collect Anmeldung Webkomponente Anwenderdokumentation Version: 2.0 Stand:

IT-Tutorial. Access Microsoft. Infos zur Migration von Access I MPRESSUM

Upgrade auf die Standalone Editionen von Acronis Backup & Recovery 10. Technische Informationen (White Paper)

Wählen Sie bitte START EINSTELLUNGEN SYSTEMSTEUERUNG VERWALTUNG und Sie erhalten unter Windows 2000 die folgende Darstellung:

Schritt 1: Verwenden von Excel zum Erstellen von Verbindungen zu SQL Server Analysis Services-Daten

Installationshilfe VisKalk V5

Lizenzierung von StarMoney 8.0 bzw. StarMoney Business 5.0 durchführen

! " # $ " % & Nicki Wruck worldwidewruck

TECHNISCHE INFORMATION LESSOR LOHN/GEHALT BEITRAGSNACHWEIS-AUSGLEICH BUCH.-BLATT MICROSOFT DYNAMICS NAV

Artikel Schnittstelle über CSV

Alle alltäglichen Aufgaben können auch über das Frontend durchgeführt werden, das in den anderen Anleitungen erläutert wird.

Anleitung zum Computercheck Windows Firewall aktivieren oder eine kostenlose Firewall installieren

Informatik I Tutorial

Getting Started Guide CRM Online, 2013 & 2015 xrm1 Verpflegungspauschalen

Stellen Sie bitte den Cursor in die Spalte B2 und rufen die Funktion Sverweis auf. Es öffnet sich folgendes Dialogfenster

MSDE 2000 mit Service Pack 3a

ecall sms & fax-portal

Updatebeschreibung JAVA Version 3.6 und Internet Version 1.2

Task: Nmap Skripte ausführen

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Anleitung mtan (SMS-Authentisierung) mit SSLVPN.TG.CH

Installation und Test von Android Apps in der Entwicklungs- und Testphase

Anleitung zur Einrichtung einer ODBC Verbindung zu den Übungsdatenbanken

Kurzeinführung Excel2App. Version 1.0.0

Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung

Transkript:

Robert Panther Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012

Robert Panther Richtig einsteigen: Datenbanken entwickeln mit SQL Server 2012 Für SQL Server 2012 Express Edition und höher geeignet Copyright 2012 O Reilly Verlag GmbH & Co. KG Das in diesem Buch enthaltene Programmmaterial ist mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor, Übersetzer und der Verlag übernehmen folglich keine Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieses Programmmaterials oder Teilen davon entsteht. Die in diesem Buch erwähnten Software- und Hardwarebezeichnungen sind in den meisten Fällen auch eingetragene Marken und unterliegen als solche den gesetzlichen Bestimmungen. Der Verlag richtet sich im Wesentlichen nach den Schreibweisen der Hersteller. Das Werk, einschließlich aller Teile, ist urheberrechtlich geschützt. Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes ist ohne Zustimmung des Verlags unzulässig und strafbar. Das gilt insbesondere für Vervielfältigungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 14 13 12 ISBN 978-3-86645-219-0 PDF ISBN 978-3-86645-769-0 O Reilly Verlag GmbH & Co. KG Balthasarstraße 81, D-50670 Köln Alle Rechte vorbehalten Umschlaggestaltung: Hommer Design GmbH, Haar (www.hommerdesign.com) Fachlektorat, Layout und Satz: Haselier IT-Services, Amsterdam Korrektorat: Frauke Wilkens, München Gesamtherstellung: Kösel, Krugzell (www.koeselbuch.de)

Inhaltsverzeichnis Vorwort... 13 Teil I Einführung... 15 1 Einleitung... 17 1.1 Warum dieses Buch?... 17 1.2 Aufbau des Buches... 17 Aufbau der einzelnen Kapitel... 18 1.3 Die Beispieldatenbank... 19 1.4 Schreibweisen... 19 1.5 DVD, Softlinks und Website zum Buch... 20 1.6 Zusammenfassung... 21 2 Der Microsoft SQL Server.... 23 2.1 Historie des Microsoft SQL Server... 23 Sybase und die Anfänge des Microsoft SQL Server... 23 Microsoft SQL Server entsteht... 23 Der SQL Server wird erwachsen... SQL Server bekommt neue Tools... 24 24 Kleiner Überblick über die wichtigsten Versionen und Builds... 25 2.2 Neuerungen bei SQL Server 2008... 27 Neue Datentypen... 28 Sonstige Neuerungen für SQL Server 2008 Express... 28 Neue Features für die größeren Editionen von SQL Server 2008... 29 2.3 Neuerungen bei SQL Server 2008 R2... 30 Neue Business-Intelligence-Features für SQL Server 2008 R2...... 30 Sonstige neue Features der größeren Editionen von SQL Server 2008 R2... 30 Neue Features von SQL Server 2008 R2 Express... 31 2.4 Neuerungen bei SQL Server 2012... 31 Mission Critical Confidence Sicherheit und Hochverfügbarkeit... 31 Breakthrough Insight neue BI-Features... 32 Cloud On Your Terms bessere Anbindung an die Cloud... 33 Neuerungen bei SQL Server 2012 Express... 33 Änderungen bei der Lizenzierung... 34 3

Inhaltsverzeichnis 2.5 Die verschiedenen SQL Server-Editionen im Vergleich... 34 SQL Server Compact Edition... 35 SQL Server Express Edition... 36 SQL Server Web Edition... 37 SQL Server Standard Edition... 37 SQL Server Enterprise Edition... 37 SQL Server Parallel Data Warehouse Edition... 38 SQL Server Developer Edition... 38 SQL Server LocalDB... 38 SQL Azure... 38 2.6 Übungen zu diesem Kapitel... 39 2.7 Zusammenfassung... 39 3 Installation und erste Schritte... 41 3.1 Systemvoraussetzungen... 41 Hardwarevoraussetzungen... 41 Softwarevoraussetzungen... 42 3.2 Installation... 42 Installation der Advanced Edition... 43 Aktualisieren von SQL Server... 54 3.3 Die wichtigsten SQL Server-Tools... 54 SQL Server-Installationscenter... 54 SQL Server-Konfigurations-Manager... 55 SQL Server Management Studio... 58 SQL Server Data Tools... 59 SQL Server-Import/Export-Assistent... 60 SQLCMD... 61 3.4 Übungen zu diesem Kapitel... 62 3.5 Zusammenfassung... 63 Teil II Datenbankgrundlagen... 65 4 Allgemeine Datenbankgrundlagen... 67 4.1 Erstellen von Datenbanken und Tabellen... 67 Anlegen einer Datenbank... 68 Anlegen von Tabellen... 71 Spalten und Datentypen... 75 NULL-Werte und Defaults... 79 4.2 Anzeigen und Ändern von Daten... 79 Ändern von Tabelleninhalten... 80 Anzeigen von Daten... 81 4

Inhaltsverzeichnis 4.3 Bearbeiten von Datenbanken und Tabellen... 83 Ändern von Datenbankeinstellungen... 83 Anpassen der Felddefinitionen einer Tabelle... 84 4.4 Primärschlüssel... 87 4.5 Indizes... 89 Funktionsweise von Indizes... 89 Erstellen von Indizes... 91 4.6 Übungen zu diesem Kapitel... 93 4.7 Zusammenfassung... 94 5 Eine Tabelle kommt selten allein... 95 5.1 Relationen und Fremdschlüssel... 95 5.2 Normalisierung... 99 5.3 Datenbankdiagramme... 101 Erstellen von Datenbankdiagrammen... 101 Ändern von Datenstrukturen mit Datenbankdiagrammen... 104 5.4 Abfragen... 105 5.5 Sichten (Views)... 107 Sichten auf eine Tabelle... 108 Sichten, die mehrere Tabellen nutzen... 108 5.6 Übungen zu diesem Kapitel... 111 5.7 Zusammenfassung... 111 6 Kleine Einführung in SQL... 113 6.1 Was ist eigentlich SQL?... 113 6.2 SQL-Anweisungen im Management Studio ausführen... 114 6.3 Datenbankabfragen mit SELECT... 116 Abfragen auf einer Tabelle... 116 Aggregierungsfunktionen und Gruppierungen... 119 Abfragen auf mehreren Tabellen... 120 6.4 Daten mit UPDATE, INSERT und DELETE bearbeiten... 122 INSERT und SELECT INTO zum Einfügen von Daten...... 122 UPDATE zum Ändern von Daten... 123 DELETE und TRUNCATE TABLE zum Löschen von Daten... 124 6.5 Erstellen und Verwenden von Sichten... 125 Erstellen von Sichten... 125 Verwenden von Sichten in SELECT-Abfragen... 126 Verwenden von Sichten für Datenänderungsoperationen... 127 6.6 Übungen zu diesem Kapitel... 130 6.7 Zusammenfassung... 130 5

Inhaltsverzeichnis Teil III Datenbankentwicklung... 133 7 Erweiterte SQL-Programmierung... 135 7.1 Komplexe SQL-SELECTs... 135 Fallunterscheidung mit CASE... 135 Fallunterscheidung mit IIF und CHOOSE... 137 Unterabfragen... 138 Aggregierungsfunktionen mit ROLLUP kumulieren... 141 7.2 Komplexe INSERTs, UPDATEs und DELETEs... 143 INSERT auf Basis von mehreren Tabellen... 143 UPDATE auf Basis von mehreren Tabellen... 143 DELETE auf Basis von mehreren Tabellen... 144 7.3 Daten abgleichen mit dem MERGE-Befehl... 145 Die klassische Variante (ohne MERGE)... 145 Die neue Variante (mit MERGE)... 146 7.4 Common Table Expressions... 148 7.5 Die OFFSET-Klausel... 148 7.6 Sequenzen... 150 7.7 Übungen zu diesem Kapitel... 153 7.8 Zusammenfassung... 154 8 SQL-Skripts... 155 8.1 Arbeiten mit SQL-Skripts... 155 8.2 Variablen... 157 Systemvariablen... 157 Tabellenvariablen und temporäre Tabellen... 158 8.3 Fallunterscheidungen und Schleifen... 160 Fallunterscheidung mit IF... 160 Anweisungsblöcke mit BEGIN... END... 161 WHILE-Schleifen... 161 8.4 Debuggen von SQL-Skripts... 162 Schrittweise Ausführung... 163 Breakpoints (Haltepunkte) nutzen... 165 8.5 Fehlerbehandlung in SQL-Skripts... 166 RAISERROR... 166 TRY... CATCH... 168 THROW... 169 8.6 Sperren, Transaktionen und Deadlocks... 169 Sperren... 169 6

Inhaltsverzeichnis Transaktionen... 170 Deadlocks... 173 8.7 Übungen zu diesem Kapitel... 175 8.8 Zusammenfassung... 176 9 Gespeicherte Prozeduren, Funktionen, Trigger und Cursor... 177 9.1 Systemprozeduren und funktionen... 177 Systemprozeduren... 177 Die wichtigsten Systemfunktionen... 180 9.2 Benutzerdefinierte gespeicherte Prozeduren... 184 Einfache gespeicherte Prozeduren... 185 Gespeicherte Prozeduren mit Parametern... 185 Gespeicherte Prozeduren mit OUTPUT-Parametern... 187 9.3 Benutzerdefinierte Funktionen... 188 Skalarwertfunktionen (oder kurz: Skalarfunktionen)... 188 Tabellenwertfunktionen... 190 Aggregatfunktionen... 192 9.4 Trigger... 193 Ein einfacher UPDATE-Trigger... 193 Kombinierte DML-Trigger... 196 Verwendung von geänderten Daten im Trigger... 196 INSTEAD OF-Trigger... 198 9.5 SQL-Cursor... 199 Ein einfacher Cursor... 199 Cursor und Trigger kombiniert verwenden... 200 9.6 Übungen zu diesem Kapitel... 202 9.7 Zusammenfassung... 203 Teil IV Datenbankadministration... 205 10 Datenbankadministration mit SQL.... 207 10.1 Skriptgenerierung oder»sql ist überall«... 207 Skriptgenerierung aus Dialogfeldern heraus... 207 Skriptgenerierung über den Objekt-Explorer... 211 Skriptgenerierung mit dem Vorlagen-Explorer... 213 10.2 Verwalten von Datenbanken... 214 Datenbanken erstellen... 215 Datenbanken anpassen... 216 Datenbanken löschen... 218 7

Inhaltsverzeichnis 10.3 Verwalten von Datenbankobjekten... 218 Tabellen... 218 Indizes... 220 Sichten, Funktionen, gespeicherte Prozeduren und Trigger... 221 10.4 DDL-Trigger... 221 Servertrigger... 222 Datenbanktrigger... 222 Was wurde eigentlich geändert?... 224 10.5 Übungen zu diesem Kapitel... 225 10.6 Zusammenfassung... 226 11 Benutzer, Rollen und Rechte... 227 11.1 Das SQL Server-Rechtesystem... 227 11.2 Anmeldungen und Authentifizierung... 227 Anlegen von SQL Server-Anmeldungen... 229 Windows-Benutzer und -Gruppen als Anmeldungen anlegen... 230 Anmeldungen testen... 232 11.3 Verwalten von Datenbankbenutzern... 234 11.4 Rechte und Rollen... 237 Serverrechte und -rollen... 237 Datenbankrechte und -rollen... 240 11.5 Contained Databases... 242 11.6 Verwendung von Schemas... 245 Schemas erstellen... 246 Schemas verwenden... 246 Berechtigungen für Schemas verwalten... 248 11.7 Übungen zu diesem Kapitel... 250 11.8 Zusammenfassung... 251 12 Daten sichern und bewegen... 253 12.1 Sichern von Datenbankdateien... 253 Der naive Backup-Ansatz: Dateien kopieren... 253 Trennen und Verbinden von Datenbanken... 256 12.2 Das Transaktionslog... 259 12.3 Sichern und Wiederherstellen von Datenbanken... 260 Wahl der richtigen Sicherungsstrategie... 268 12.4 Import und Export von Daten... 270 Der Import-/Export-Assistent... 270 Masseneinfügen per BULK INSERT... 273 8

Inhaltsverzeichnis BCP Masseneinfügen über die Kommandozeile... 274 Formatdateien für BULK INSERT und bcp nutzen... 276 12.5 Übungen zu diesem Kapitel... 277 12.6 Zusammenfassung... 278 Teil V Erweiterte Funktionen... 279 13 SQL Server und.net Framework... 281 13.1 Schichtentrennung und Applikationsaufbau... 282 13.2 Zugriff über ADO.NET... 282 13.3 LINQ to SQL... 285 LINQ to SQL-Klassen per Quelltext erstellen... 285 LINQ to SQL-Klassen mit dem Server-Explorer erstellen... 288 13.4 Das ADO.NET Entity Framework... 289 13.5 Übungen zu diesem Kapitel... 294 13.6 Zusammenfassung... 295 14 Reporting mit SQL Server Express mit Advanced Services... 297 14.1 Überblick über die Reporting Services... 297 14.2 Konfiguration der Reporting Services... 298 14.3 Erstellen eines Reports mit dem Report-Designer... 301 14.4 Übungen zu diesem Kapitel... 307 14.5 Zusammenfassung... 307 15 Zusammenarbeit mit anderen SQL Server-Instanzen und -Editionen... 309 15.1 Verbindung zu anderen Servern... 309 15.2 Replikation... 311 Überblick über die SQL Server-Replikation... 312 Welche Rolle spielt SQL Server Express bei der Replikation?... 313 15.3 Die SQL Server LocalDB... 313 15.4 Die SQL Server Compact Edition... 315 15.5 SQL Azure... 318 Zusammenspiel von SQL Azure und SQL Server 2012... 318 15.6 Umstieg auf eine größere Edition... 320»Side by Side«-Installation... 321»In Place«-Installation... 322 9

Inhaltsverzeichnis 15.7 Übungen zu diesem Kapitel... 322 15.8 Zusammenfassung... 322 16 Datenebenenanwendungen... 325 16.1 Überblick über Datenebenenanwendungen... 325 16.2 Erstellen von Datenebenenanwendungen... 326 Extrahieren von Datenebenenanwendungen... 326 Registrieren von Datenebenenanwendungen... 330 16.3 Verteilen von Datenebenenanwendungen... 330 Bereitstellen von Datenebenenanwendungen... 330 Aktualisieren von Datenebenenanwendungen... 332 Löschen von Datenebenenanwendungen... 334 16.4 Importieren und Exportieren von Datenebenenanwendungen... 335 Exportieren von Datenebenenanwendungen... 335 Importieren von Datenebenenanwendungen... 337 16.5 Übungen zu diesem Kapitel... 338 16.6 Zusammenfassung... 338 17 Die SQL Server Data Tools.... 339 17.1 Überblick über die SQL Server Data Tools... 339 17.2 Installation... 340 17.3 Mit Datenbankprojekten arbeiten... 344 Anlegen eines neuen Datenbankprojekts... 344 Objekte in Datenbankprojekten anpassen... 347 Veröffentlichen von Datenbankprojekten... 349 17.4 Die CLR-Integration von SQL Server... 351 17.5 Sonstige nützliche Features... 354 Server-Explorer und SQL Server-Objekt-Explorer... 354 Schemavergleich... 355 Statische Code-Analyse... 356 17.6 Ausblick... 357 Zukünftige Features... 357 Team Foundation Server Express... 358 17.7 Übungen zu diesem Kapitel... 359 17.8 Zusammenfassung... 359 Nachwort... 361 10

Inhaltsverzeichnis Anhänge... 363 A Kleine SQL-Referenz.... 365 A.1 SELECT... 365 Einfache Abfragen... 365 Komplexere Abfragen... 366 Abfragen auf mehreren Tabellen... 367 Unterabfragen... 367 Common Table Expressions... 368 A.2 Data Manipulation Language (DML)... 368 UPDATE... 368 INSERT/SELECT INTO... 369 DELETE/TRUNCATE TABLE... 369 MERGE... 370 A.3 Data Definition Language (DDL)... 370 Datenbanken erstellen und konfigurieren... 370 Schemas erstellen... 371 Tabellen erstellen und ändern... 371 Sichten erstellen und ändern... 371 Indizes erstellen und aktualisieren... 372 Gespeicherte Prozeduren erstellen und ändern... 372 Benutzerdefinierte Funktionen erstellen und ändern... 372 Trigger erstellen und ändern... 374 Datenbankobjekte löschen... 375 A.4 Data Control Language (DCL)... 375 Anmeldungen und Benutzer anlegen... 375 Server- und Datenbankrollen... Server- und Datenbankrechte... 376 376 A.5 SQL Server-Datentypen... 376 Numerische Datentypen... 377 Alphanumerische Datentypen... 378 Binäre Datentypen... 378 Zeit- und Datumstypen... 379 Sonstige Datentypen... 379 A.6 Systemobjekte... 380 Systemsichten... 380 Systemfunktionen... 381 Systemprozeduren... 382 Systemvariablen... 383 11

Inhaltsverzeichnis B Inhalt der Buch-DVD... 385 B.1 Beispiele... 386 Datenbanken... 386 Skriptdateien... 386 Projektdateien... 387 B.2 SQL Server 2012 Express... 387 B.3 SQL Server Compact 4.0... 388 B.4 SQL Server Data Tools... 388 C Weiterführende Infos im Web... 389 C.1 Die Website zu Buchreihe, Verlag und Autor... 389 C.2 Microsoft-Websites zu SQL Server... 389 C.3 Downloads zu SQL Server... 391 C.4 Sonstige Websites zu SQL Server... 392 C.5 SQL Server Foren und Blogs... 393 D Glossar... 395 Stichwortverzeichnis... 403 12

Vorwort Fast vier Jahre sind nun vergangen (wenn man von dem»bi-release«sql Server 2008 R2 absieht), bis nun endlich wieder eine wirklich neue Version von SQL Server erschienen ist. Von vielen bereits für 2011 erwartet, hat es doch bis Ende März 2012 gedauert, bis die finale Version von SQL Server»Denali«(so der Arbeitstitel) fertiggestellt war und nun unter dem Namen SQL Server 2012 erhältlich ist. Wenn man eher ein ungeduldiger Typ ist, kann man sich fragen, warum es so lange gedauert hat. Ich bin eher der Ansicht, dass gerade ein Produkt wie ein relationales Datenbank-Management-System, das auch vielfach für geschäftskritische Anwendungen produktiv eingesetzt wird, immer eine gewisse Zeit zum Reifen braucht. Microsoft hat einen extremen Entwicklungs- und Testaufwand betrieben, bis das Produkt nach verschiedenen Community Technology Previews und Release Candidates nun letztendlich ausgereift genug ist, um den bereits ebenfalls sehr stabilen und bewährten SQL Server 2008 R2 abzulösen. Dazu wurden große Mengen an neuen Features in nahezu allen Bereichen des komplexen Produkts integriert, die ich hier nicht vorwegnehmen will. Und trotz der langen Zeit und den vielen Änderungen wurde SQL Server nicht komplett neu entworfen, sondern stattdessen konsequent weiterentwickelt, sodass man auch als langjähriger Anwender auf bestehendes Wissen aufbauen und dieses um die Kenntnis der neuen Features erweitern kann. Genauso wie SQL Server immer weiterentwickelt wurde, wird auch dieses Buch ständig weiterentwickelt, das bereits in ähnlicher Form für SQL Server 2008 Express und SQL Server 2008 R2 Express verfügbar war. Ich habe mich mit dem Verlag darauf geeinigt, das Wort»Express«diesmal bewusst aus dem Buchtitel wegzulassen, da alle beschriebenen Features und Beispiele auch für die größeren Editionen von SQL Server anwendbar sind und der Text sich damit als Einstieg für alle Editionen eignet. Trotzdem finden Sie auf der Buch-DVD wieder die Express Edition des aktuellen SQL Server, sodass Sie alle Beispiele gleich ausprobieren können, auch wenn Sie bisher keinen SQL Server installiert hatten. Damit Sie auch wissen, wer dieses Buch geschrieben hat, möchte ich mich kurz vorstellen: Ich beschäftige mit seit etwa 1995 mit dem SQL Server (damals noch in der Version 6.0) und habe das Produkt seitdem in seinen vielfältigen Facetten kennengelernt. Anfangs in Form von Performance- Untersuchungen für meine Diplomarbeit zum Thema»Optimierung von Datenbankanwendungen«, mit der ich im Jahr 1996 mein Informatik-Studium an der FH Darmstadt erfolgreich abschloss. Anschließend aus der Sicht als Datenbankadministrator für ein großes Unternehmen der Reisebranche. Darauf wechselte ich in ein mittelständisches Softwarehaus, in dem mich der SQL Server sowohl aus der Sicht eines Administrators als auch aus der eines Anwendungsentwicklers stets begleitete. Seit 2007 bin ich nun als Senior Consultant für Logica ein großes international agierendes Beratungsunternehmen tätig und bin spätestens seit diesem Zeitpunkt völlig auf den SQL Server fokussiert. Sofern es die Projekte zulassen, bin ich auch immer wieder mal als Sprecher auf diversen Fachkonferenzen (z.b. BASTA! & SQLCON) sowie in der offiziellen SQL Server User Community PASS (Professional Association for SQL Server) aktiv. Und nach all dieser Zeit fasziniert es mich nach wie vor, dass es immer wieder Neues beim SQL Server zu entdecken gibt. Diese Begeisterung möchte ich Ihnen mit diesem Buch weitergeben. 13

Vorwort Bevor ich aber mit dem eigentlichen Buchtext beginne, will ich noch ein Dankeschön an verschiedene Personen loswerden: Beginnen möchte ich mit Sylvia Hasselbach von Microsoft Press, die dieses Buch betreut und Verständnis für so manche Terminverzögerung aufgebracht hat. Ein weiteres Dankeschön geht an Sandra Michel, die dasselbe für die vorangegangenen Fassungen des Buchtextes getan hat. Ebenso gilt mein Dank Rainer G. Haselier, der mich sowohl als Fachlektor unterstützt hat als auch für den Satz des Buchtextes verantwortlich war. Des Weiteren bedanke ich mich natürlich bei allen Kunden, Kollegen und Freunden, die mich immer wieder in Gesprächen oder in Form von Lesermails mit interessanten Ideen und Anregungen für dieses Buch versorgt haben. Vor allem aber bedanke ich mich bei meiner Frau Birgit dafür, dass sie wieder einmal Verständnis dafür aufbringen konnte, dass ich für einen gewissen Zeitraum einen großen Teil meiner Freizeit für die Bearbeitung dieses Buchtextes aufbringen musste. Robert Panther, Königstein im April 2012 14

I Einführung Teil I Einführung In diesem Teil: Kapitel 1 Einleitung............................................ 17 Kapitel 2 Der Microsoft SQL Server.................................... 23 Kapitel 3 Installation und erste Schritte.................................. 41 15

Kapitel 1 Einleitung 16

Kapitel 1 Einleitung I Einführung In diesem Kapitel lernen Sie warum und für welche Zielgruppe dieses Buch entstanden ist wie dieses Buch aufgebaut ist welche Formatierungen und Symbole im Text verwendet werden 1.1 Warum dieses Buch? Mit SQL Server 2012 Express stellt Microsoft eine kostenfrei erhältliche Version des aktuellen SQL Server zur Verfügung, die bereits einen beachtlichen Funktionsumfang enthält und damit für viele Aufgaben bestens geeignet ist. Wenn Sie bereits mit einer älteren Version von SQL Server gearbeitet haben, werden Sie die vielen interessanten Neuerungen schätzen lernen, mit denen die bereits vielfach bewährten Vorgängerversionen weiter verbessert wurden. Wenn Sie stattdessen bisher mit Microsoft Access oder der MSDB einfache Datenbankanwendungen erstellt haben, ist SQL Server 2012 Express der nächste logische Schritt, um diese Anwendungen auf eine skalierbare Plattform zu portieren. Denn wenn die Express Edition einmal nicht mehr ausreichen sollte, können Sie die Datenbank problemlos auf einer größeren Variante von SQL Server einspielen, ohne den Code der Anwendung ändern zu müssen. Und auch wenn Sie bisher noch gar keine Erfahrung mit der Entwicklung von Datenbankanwendungen haben, ist SQL Server 2012 Express das ideale Produkt, um in diese Thematik einzusteigen. Mit diesem Buch erhalten Sie einen strukturierten Einstieg in die Möglichkeiten, die SQL Server 2012 insbesondere SQL Server 2012 Express bietet. Selbst wenn Sie später mit einer größeren Variante von Microsoft SQL Server arbeiten sollten, können Sie auf das hier vermittelte Grundwissen aufbauen und müssen lediglich die zusätzlichen Features der größeren Versionen dazulernen. Somit ist dieses Buch auch als Grundlagenbuch für alle anderen Editionen von SQL Server geeignet. 1.2 Aufbau des Buches Der Buchtext gliedert sich in fünf größere Abschnitte, die durch einen Anhang ergänzt werden. Teil I, Einführung, gibt einen kurzen Überblick über Microsoft SQL Server. Nach einer Beschreibung der Historie werden die Neuerungen der 2012er-Variante vorgestellt, gefolgt von einem Vergleich der verschiedenen Editionen von SQL Server. Danach wird die Installation der Express Edi- 17

Kapitel 1 Einleitung tion beschrieben. Abgerundet wird dieser Teil des Buches durch einen Überblick über die wichtigsten Tools, die SQL Server mitbringt. Teil II, Datenbankgrundlagen, vermittelt die wichtigsten Grundlagen, die Sie benötigen, um mit Datenbank-Management-Systemen wie SQL Server 2012 zu arbeiten. Nach ein paar allgemeinen Grundlagen folgt eine Beschreibung, wie Sie die wichtigsten Datenbankobjekte wie Datenbanken, Tabellen, Sichten und Indizes anlegen und verwalten können. Abgerundet wird dieser Teil durch eine Einführung in die wichtigsten SQL-Anweisungen zum Abfragen, Einfügen, Ändern und Löschen von Daten. Teil III, Datenbankentwicklung, befasst sich mit fortgeschritteneren Themen der Datenbankentwicklung. Ein Kapitel widmet sich der erweiterten SQL-Programmierung wie beispielsweise komplexeren SQL-Abfragen, ein weiteres der Programmierung von Triggern, gespeicherten Prozeduren und Funktionen. Dazu werden auch die Besonderheiten von SQL-Skripts behandelt und erläutert, wie man diese debuggen oder gar eine Fehlerbehandlung zur Laufzeit implementieren kann. Teil IV, Datenbankadministration, führt Sie in die Nutzung der administrativen Möglichkeiten von SQL Server ein. Dabei wird das Anlegen, Ändern und Löschen von Datenbanken, Tabellen, Indizes etc. sowohl über die Benutzeroberfläche als auch mit der Sprache SQL beschrieben. Aber auch andere wichtige administrative Themen wie die Benutzer- und Rechteverwaltung sowie das Sichern und Wiederherstellen von Daten kommen hier nicht zu kurz. Teil V, Erweiterte Funktionen, erklärt die Nutzung von erweiterten Möglichkeiten von SQL Server Express. Das ist einerseits das Zusammenspiel mit.net, um zur Datenbank auch komfortable Anwendungen entwickeln zu können. Andererseits werden die Reporting-Features beschrieben, die Sie mit SQL Server Express Advanced Edition nutzen können. Anschließend folgt ein Kapitel, in dem die Möglichkeiten zur Zusammenarbeit mit den größeren (und kleineren) Editionen von SQL Server aufgezeigt werden. So lässt sich SQL Server Express beispielsweise als Client für ein Replikationsszenario verwenden. Aber auch die Compact Edition, die automatisch mit SQL Server Express installiert wird, sowie die mit SQL Server 2012 neu hinzugekommene SQL Server LocalDB werden behandelt. Die beiden letzten Kapitel dieses Teils schließlich beschreiben die Verwendung von Datenebenenanwendungen sowie die mit SQL Server 2012 neu eingeführten SQL Server Data Tools. Im Anhang finden Sie eine kurze Referenz der wichtigsten SQL-Befehle. Dazu eine ausführliche Beschreibung des Inhalts der Buch-DVD gefolgt von einem Überblick über weitere Informationsquellen zum Thema im Internet. Abgeschlossen wird der Anhang durch ein Glossar, in dem die wichtigsten Fachbegriffe erklärt sind, sowie das obligatorische Stichwortverzeichnis. Aufbau der einzelnen Kapitel Die einzelnen Kapitel des Buches sind folgendermaßen aufgebaut: Lernziele Sie finden am Anfang jedes Kapitels eine Übersicht zu den Lernzielen und Themen des Kapitels. Schrittfolgen Die Anleitungen für das Erstellen der Datenbanken sind als Schrittfolgen dargestellt. Auch wenn Sie die Beispieldatenbanken und -projekte von der Website zum Buch herunterladen können, empfehle ich Ihnen, alle Beispiele selbst zu erstellen, indem Sie Schritt für Schritt den beschriebenen Ablauf nachvollziehen. Sie werden auf diese Weise schneller mit der Oberfläche der diversen SQL Server Tools sowie der Syntax von T-SQL vertraut. 18

1.4 Schreibweisen Übungen Vor der Zusammenfasssung folgt meist noch ein Abschnitt mit Übungen zu dem jeweiligen Kapitel. Manchmal handelt es sich dabei um einfache Fragen, manchmal enthält eine Übung eine Aufgabe, um die im Kapitel durchgeführte Datenbankoperation noch weiter zu verfeinern. Alle Antworten finden Sie auf der Website zu diesem Buch. Versuchen Sie, die Übungen selbstständig durchzuführen, und schauen Sie sich erst dann die Lösungen an. So werden Sie schneller in der Lage sein, eigene Datenbankprojekte zu realisieren. Zusammenfassung Am Ende jedes Kapitels finden Sie eine kurze Zusammenfassung der wichtigsten Lerninhalte, damit Sie sich das gerade Erlernte noch einmal ins Gedächtnis zurückrufen können. I Einführung 1.3 Die Beispieldatenbank Um einen echten Praxisbezug zu erreichen, wird im gesamten Buch eine einheitliche Beispieldatenbank verwendet, die im Laufe des Textes immer weiter entwickelt wird. Dabei wurde bewusst vermieden, die zweitausendundzweite Adressverwaltung zu entwerfen. Dennoch wurde ein relativ gängiges Anwendungsbeispiel verwendet, damit die Beispiele auch für jeden möglichst gut nachvollziehbar sind. Und zwar geht es um eine Mediendatenbank, mit der Sie Bücher, Audio-CDs und DVDs verwalten können. Ich selbst kenne die Notwendigkeit einer solchen Datenbank nur zu gut, gehöre ich doch zu den vielen»jägern und Sammlern«, die über eine recht große Anzahl von CDs und DVDs verfügen. Hin und wieder passiert es dann, dass ich eine interessante CD oder DVD günstig erstehe, um zu Hause dann festzustellen, dass diese bereits in meinem Regal stand. (Zum Glück kommt das allerdings nicht allzu oft vor.) Um derlei Missgeschick künftig völlig auszuschließen, benötigt man also eine Mediendatenbank (möglichst auch in einer Offlinevariante, die man dann beim nächsten Besuch des Elektronikmarkts seines Vertrauens beispielsweise im Mobiltelefon parat hat). Wenn man dann noch eine einfache Suchoberfläche zur Verfügung hat, um mit wenigen Tastendrücken nachzusehen, ob ein Titel schon in der privaten Sammlung enthalten ist, ist das Problem gelöst. Im Vordergrund der meisten Beispiele in diesem Buch wird allerdings weniger die Benutzeroberfläche der zugehörigen Anwendung, sondern vielmehr die Datenbank selbst stehen. 1.4 Schreibweisen Dieses Buch verwendet einige wenige Konventionen. Wenn Sie mit ihnen vertraut sind, können Sie einfacher mit dem Buch arbeiten: Fette Schrift Text, den Sie in den Schrittfolgen eintippen müssen, wird in fett gedruckten Buchstaben dargestellt. Auch in Codelistings werden Änderungen, die in einem bestimmten Schritt im Quellcode vorgenommen wurden, fett, aber dann in Listingschrift dargestellt. Kursive Schrift Die kursive Schrift wird für Dateinamen verwendet, bezeichnet Elemente der Benutzeroberfläche (in den meisten Fällen also des Menüs des SQL Server Management Studio, Dialogfelder und auch die Namen der Eigenschaften, wie sie im Management Studio oder in der IDE erscheinen) und wird in seltenen Fällen auch für Hervorhebungen verwendet. Auch Datenbankobjekte wie die Namen von Datenbanken, Tabellen, Feldern etc. werden in kursiver Schrift dargestellt. 19

Kapitel 1 Einleitung Listingschrift Die Listingschrift wird verwendet, wenn Codefragmente aus dem Beispielcode abgedruckt werden. Im Fließtext werden die Begriffe in Listingschrift gedruckt, die auf Stellen im Quellcode verweisen. Zusätzlich finden Sie im ganzen Buch verteilt Absätze, die mit den folgenden Symbolen versehen sind und die auf bestimmte, hilfreiche Elemente hinweisen: Wichtig Hinweis Tipp Best Practices Absätze mit diesem Icon enthalten wichtige Informationen, auf die Sie unbedingt achten sollten. Absätze mit diesem Icon enthalten weiterführende Informationen, die Sie im Hinterkopf behalten sollten. In den Tipp-Absätzen finden Sie Informationen dazu, wie Sie Dinge besonders einfach und zeitsparend machen können. Mit diesem Symbol markierte Absätze enthalten Beschreibungen zu gängigen Vorgehensweisen, die sich in der Praxis bewährt haben. Hintergrundinfo Absätze, die dieses Icon besitzen, liefern wichtige Hintergrundinformationen. Die Informationen sind nicht erforderlich, um eine bestimmte Schrittfolge durchzuführen, sie vertiefen jedoch Ihr Wissen über die Zusammenhänge, in denen eine bestimmte Aktion steht. Internet-Links Mit diesem Icon werden Links zu weiterführenden Kapiteln aus anderen Microsoft Press-Büchern gekennzeichnet, die Sie kostenlos herunterladen können und die Themen, die in diesem Buch nur angerissen werden können, vertiefen. Dieses Icon wird auch verwendet, um Sie auf andere Websites im Internet hinzuweisen, auf denen Sie unterhaltsame und nützliche Informationen finden, die mit dem Thema, das behandelt wird, in Zusammenhang stehen. Bei der Wahl von Fachbegriffen aus dem Umfeld von SQL Server wird in der Regel vorrangig die deutschsprachige Bezeichnung verwendet. Zusätzlich wird an vielen Stellen aber auch auf die englischsprachige Variante hingewiesen, da Sie diese in vielen teilweise selbst deutschsprachigen Quellen finden und dadurch die Suche nach weiterführenden Informationen zu einem bestimmten Thema im Internet erleichtert wird. Beispiel: Sichten (engl. Views) 1.5 DVD, Softlinks und Website zum Buch Damit Sie das in diesem Buch Erlernte sofort ausprobieren können, liegt eine DVD bei, auf der alles enthalten ist, was Sie benötigen, um gleich loszulegen. Das betrifft einerseits die dargestellten Programmbeispiele, aber auch die Installationsdateien für SQL Server 2012 Express. Die Installation der Software ist in Kapitel 3, Installation und erste Schritte ausführlich beschrieben. Eine ausführliche Beschreibung der sonstigen enthaltenen Dateien finden Sie im Anhang dieses Buches. 20

1.6 Zusammenfassung Unter der Webadresse www.richtig-einsteigen.de finden Sie die Website zur Buchreiche Richtig einsteigen, wo neben eventuellen Fehlerkorrekturen zum Text (nobody is perfect) auch aktualisierte Beispieldateien sowie zusätzliche Downloads zu finden sind, die in den jeweiligen Kapiteln beschrieben sind. Dies sind unter anderem weitere Beispielprojekte und Probekapitel aus anderen Microsoft Press-Büchern, mit denen Themen, die in diesem Buch aus Platzgründen nur einführend erläutert werden können, vertieft werden. Im Text des Buches finden Sie außerdem einige Softlinks, die Sie auf interessante, unterhaltsame oder lehrreiche Websites verweisen. Sie können die Softlinks entweder direkt auf der Startseite von www.richtig-einsteigen.de eingeben oder in Ihren Browser die angegebene Adresse eintippen, um die jeweilige Website zu öffnen. Um die Softflinks direkt in die Adressleiste Ihres Browsers einzugeben, verwenden Sie folgende Syntax: http://go.richtig-einsteigen.de/?linkid=id, wobei Sie dann id durch die angegebene Link-ID ersetzen. I Einführung 1.6 Zusammenfassung Dieses einführende Kapitel hat Ihnen einen Überblick gegeben, wie dieses Buch aufgebaut ist und welche Schreibweisen darin verwendet werden. Es wurde selbstverständlich alles unternommen, um die Richtigkeit des Buchinhalts und des Bonusmaterials sicherzustellen. Etwaige Korrekturen und Änderungen finden Sie unter folgender Adresse: http://www.microsoft-press.de/support.asp Wenn Sie Kommentare, Fragen oder Anregungen zum Inhalt dieses Buches oder des Begleitmaterials bzw. Fragen haben, die Sie auf den oben angegebenen Websites nicht klären konnten, senden Sie eine E-Mail an folgende Adresse bei Microsoft Press: mspressde@oreilly.de oder per Post an: Microsoft Press Deutschland Konrad-Zuse-Str. 1 85716 Unterschleißheim Beachten Sie, dass Microsoft unter diesen Adressen keinen Support für Softwareprodukte leistet. So, nun wünsche ich aber viel Vergnügen beim Lesen dieses Buches und Entdecken der zahlreichen Möglichkeiten von SQL Server 2012 Express. Robert Panther 21

Kapitel 1 Einleitung Beispieldatenbank 17 DVD 18 Schreibweisen 17 Softlinks 18 Website 18 22

Kapitel 2 Der Microsoft SQL Server I Einführung In diesem Kapitel lernen Sie wie SQL Server zu dem geworden ist, was er heute ist welche Neuerungen in der aktuellen 2012er-Version dazukamen was sich bei SQL Server 2012 geändert hat wodurch sich die verschiedenen Editionen des SQL Server voneinander unterscheiden 2.1 Historie des Microsoft SQL Server Microsoft SQL Server kann auf eine bewegte Vergangenheit zurückblicken, die inzwischen über 20 Jahre dauert. Diese lange Zeit belegt natürlich auch, dass es sich bei diesem Datenbank-Management-System um ein sehr ausgereiftes Produkt handelt. Sybase und die Anfänge des Microsoft SQL Server Bereits 1988/89 kam die erste Version des SQL Server als Gemeinschaftsproduktion von Ashton-Tate, Sybase und Microsoft auf den Markt, damals noch primär für das Betriebssystem OS/2 gedacht. Der Funktionsumfang entsprach etwa der damaligen Sybase Version 3.0 für Unix. Das nächste wesentliche Release immer noch für OS/2 erschien vier Jahre später mit der Version 4.2, dicht gefolgt von der Version 4.21 für Windows NT, die zeitgleich mit Windows NT 3.1 erschien. Funktionsumfang und Leistungsfähigkeit waren noch recht beschränkt, doch nicht zuletzt die intuitive Oberfläche machte dieses Produkt zumindest als Datenbank für kleine Abteilungen interessant. Microsoft SQL Server entsteht Im Jahr 1994 beendeten Sybase und Microsoft ihre Zusammenarbeit. Microsoft erkämpfte sich die Rechte für alle Versionen für Microsoft-Betriebssysteme, während Sybase das Produkt unter dem Namen Sybase Adaptive Server weiterentwickelte. Ein Jahr später nachdem große Teile der Datenbank- Engine des SQL Server komplett neu programmiert waren erschien mit der Version 6.0 der erste»richtige«microsoft SQL Server. Sowohl Leistungsumfang als auch Performance waren stark verbessert, wodurch Microsoft SQL Server eine ernst zu nehmende Alternative für die etablierten Datenbank- Management-Systeme anderer Hersteller wurde, die meist ein Vielfaches kosteten. Im Jahre 1996 wurde SQL Server 6.0 durch die Version 6.5 abgelöst, die allerdings keine wesentlichen neuen Features brachte, sondern vielmehr eine Menge an Detailverbesserungen. 23

Kapitel 2 Der Microsoft SQL Server Auch wenn Sybase seit der Version 6.0 keinen Einfluss mehr auf die Produktentwicklung hatte, so waren bis zur Version 7.0, die 1998 erschien, immer noch Teile des alten Quellcodes darin enthalten. Mit der Version 7.0 allerdings wurde der Kern komplett neu entwickelt. Ein Jahr später kamen die OLAP Tools dazu, mit denen man in Kombination mit den ebenfalls integrierten Data Transformation Services ein Data Warehouse aufbauen konnte, was bis dahin nur wesentlich teureren Softwarelösungen vorbehalten war. Der SQL Server wird erwachsen Ab der Version 8.0 die im Jahr 2000 erschien wurde der offizielle Produktname umgestellt, sodass die Software nun als SQL Server 2000 auf den Markt kam. Intern wurden die Versionsnummern aber auch nach dem alten Konzept weitergeführt, sodass es seitdem eine interne Versionsnummer und eine offizielle Produktbezeichnung gibt. Die wesentlichen Neuerungen des SQL Server 2000 waren eine deutlich verbesserte Performance, Skalierbarkeit und Zuverlässigkeit, womit das Produkt für den Unternehmenseinsatz interessanter wurde. Parallel dazu wurden zwar auch die Lizenzkosten deutlich angehoben, lagen aber immer noch deutlich unter denen der Konkurrenz. So wundert es nicht, dass SQL Server 2000 ein Jahr nach seinem Erscheinen Oracle von der Spitzenposition der Datenbank-Management-Systeme für Windows verdrängte. Etwas später kamen dann die Reporting Services als kostenfreies Add-On hinzu, womit SQL Server 2000 alle Komponenten für eine komplette Business-Intelligence-Lösung beinhaltete. Im Jahr 2003 erschien erstmals auch eine 64-Bit-Version von SQL Server (bei den darauf folgenden Versionen wurde diese immer nahezu zeitgleich mit der 32-Bit-Version ausgeliefert). SQL Server bekommt neue Tools Erst fünf Jahre nach dem Erscheinen von SQL Server 2000 kam mit dem SQL Server 2005 das nächste große Release auf den Markt und wusste gleich zu Beginn mit einer Fülle an neuen Features zu überzeugen. Neben einer wiederum verbesserten Datenbankperformance wurden komplett neue Client-Tools mitgeliefert. So wurde beispielsweise der Enterprise Manager des SQL Server 2000 ab 2005 durch das SQL Server Management Studio abgelöst. Aber auch im Bereich Business Intelligence gab es bahnbrechende Neuerungen: Die alten Data Transformation Services wurden durch die sehr viel leistungsfähigeren SQL Server Integration Services (SSIS) abgelöst. Als Tool für OLAP und Data Mining wurden die SQL Server Analysis Services (SSAS) eingeführt. Konsequenterweise wurden natürlich auch die bereits für den SQL Server 2000 erhältlichen SQL Server Reporting Services (SSRS) in das Produkt integriert. Dazu kam eine Vielzahl an weiteren Features wie.net Framework-Integration, XML-Unterstützung, Service Broker und Notification Services. Im August 2008 erschien dann der SQL Server 2008 (auch unter dem Codename Katmai bekannt). Im Vergleich zur Vorgängerversion aus dem Jahre 2005 stellt SQL Server 2008 eine weitere Evolutionsstufe dar. Die meisten Bestandteile, die sich beim SQL Server 2005 schon bewährt haben, wurden beibehalten und konsequent weiterentwickelt. Die Änderungen im Detail sind allerdings so vielfältig, dass es Sinn macht, sich diese genauer anzusehen. Daher folgt dazu weiter hinten in diesem Kapitel ein separater Abschnitt. 24

2.1 Historie des Microsoft SQL Server Im April 2010 erschien dann entgegen ursprünglichen Erwartungen nicht der SQL Server 2010, sondern der SQL Server 2008 R2, der auch den inoffiziellen Beinamen»BI Refresh«erhielt, da diese Version im Wesentlichen Erweiterungen im Bereich der Business-Intelligence-Komponenten erhielt. Dass aber auch in anderen Bereichen einiges geändert wurde, zeigt der entsprechende Abschnitt weiter hinten in diesem Kapitel. Die Hauptversionsnummer wurde jedoch bewusst beibehalten, da die eigentliche Datenbank-Engine von SQL Server 2008 nahezu unverändert übernommen wurde. Im März/April 2012 erschien dann mit dem SQL Server 2012 endlich wieder eine komplett neue Version des Datenbankservers, bei dem es in fast allen Bereichen vom Kern bis hin zu den Tools maßgebliche Neuerungen gibt. Einen Überblick dazu finden Sie weiter hinten in diesem Kapitel. Die neuen Features, die für die Express Edition und damit für den Einstieg in SQL Server relevant sind, werden in den restlichen Kapiteln des Buches ausführlicher beschrieben. I Einführung Kleiner Überblick über die wichtigsten Versionen und Builds Insbesondere bevor die jeweiligen SQL Server offiziell auf dem Markt erscheinen, werden diese meist nur mit ihren Codenamen bezeichnet, die von Microsoft schon während der Entwicklung des Produkts vergeben werden (der eigentliche Produktname wird erst später festgelegt). Da diese Codenamen auch in vielen Blogs und Internetforen auftauchen, ist es sinnvoll, sie schon einmal gehört zu haben, um entscheiden zu können, ob sich ein Artikel auch auf die selbst genutzte Version von SQL Server bezieht. Tabelle 2.1: Die Historie des SQL Server im Überblick Jahr Produktname Version Codename 1988/89 SQL Server 1.0 1.0 (für OS/2) 1992 SQL Server 4.2 4.2 (OS/2) 1993 SQL Server 4.21 4.21 (Windows NT) 1995 SQL Server 6.0 6.0 SQL95 1996 SQL Server 6.5 6.5 Hydra 1998 SQL Server 7.0 7.0 Sphinx 1999 SQL Server 7.0 OLAP Tools 7.0 Plato 2000 SQL Server 2000 8.0 Shiloh 2003 SQL Server 2000 (64 Bit) 8.0 Liberty 2005 SQL Server 2005 9.0 Yukon 2008 SQL Server 2008 10.0 Katmai 2010 SQL Server 2008 R2 10.5 Kilimanjaro 2012 SQL Server 2012 11.0 Denali Natürlich gab es zu den meisten oben genannten Versionen noch diverse Updates und Service Packs. So ist im Juli 2011 das Service Pack 1 für SQL Server 2008 R2 herausgekommen und selbst die eigentlich ältere Version SQL Server 2008 hat im Oktober 2011 noch ein Service Pack erhalten. 25

Kapitel 2 Der Microsoft SQL Server Leider zeigt ein bereits installierter SQL Server nicht die Nummer des Service Packs, sondern nur die interne Buildnummer an, daher hier eine kleine Übersicht der Service Packs zu den neueren SQL Server- Versionen. Tabelle 2.2: Zuordnungstabelle SQL Server-Buildnummer und -Service-Packs Erscheinungstermin Produktname Buildnummer Service Pack SQL Server 2000 8.00.194 11.06.2001 SQL Server 2000 SP1 8.00.384 SP1 04.02.2003 SQL Server 2000 SP2 8.00.534 SP2 27.08.2003 SQL Server 2000 SP3 8.00.760 SP3 27.08.2003 SQL Server 2000 SP3a 8.00.760 SP3a 06.05.2005 SQL Server 2000 SP4 8.00.2039 SP4 20.12.2005 SQL Server 2005 9.00.1399 18.04.2006 SQL Server 2005 SP1 9.00.2047 SP1 06.03.2007 SQL Server 2005 SP2 9.00.3042 SP2 15.12.2008 SQL Server 2005 SP3 9.00.4035 SP3 17.12.2010 SQL Server 2005 SP4 9.00.5000 SP4 05.06.2008 SQL Server 2008 (RC0) 10.00.1442 07.08.2008 SQL Server 2008 10.00.1600 23.02.2009 SQL Server 2008 SP1 (CTP) 10.00.2520 SP1 (CTP) 07.04.2009 SQL Server 2008 SP1 10.00.2531 SP1 29.09.2010 SQL Server 2008 SP2 10.00.4000 SP2 06.10.2011 SQL Server 2008 SP3 10.00.5500 SP3 30.06.2009 SQL Server 2008 R2 (CTP) 10.50.1092 12.11.2009 SQL Server 2008 R2 (CTP) 10.50.1352 21.04.2010 SQL Server 2008 R2 10.50.1600 11.07.2011 SQL Server 2008 R2 SP1 10.50.2500 SP1 08.11.2010 SQL Server 2012 (CTP1) 11.00.1103 11.07.2011 SQL Server 2012 (CTP3) 11.00.1440 17.11.2011 SQL Server 2012 (RC0) 11.00.1750 16.12.2011 SQL Server 2012 (RC1) 11.00.1913 06.03.2012 SQL Server 2012 11.00.2100 26

Hintergrundinfo: CTPs, RTMs, Service Packs, Hot Fixes und kumulative Updates 2.2 Neuerungen bei SQL Server 2008 Bei den Versionsbezeichnungen aktueller Microsoft-Produkte werden verschiedene Begriffe verwendet, die zu Verwirrung führen können. Daher werden die Begriffe hier erklärt: Community Technology Preview (CTP) Hierbei handelt es sich um Vorabversionen, die bereits den endgültigen Funktionsumfang beinhalten, aber der Benutzer-Community schon zur Verfügung gestellt werden, noch bevor sie zur eigentlichen Produktion freigegeben sind. In diesem Stadium können noch einzelne Features hinzukommen oder aber wieder wegfallen. I Einführung Release Candidate (RC) Im Gegensatz zu den Community Technology Previews steht der Umfang der Features beim Release Candidate fest. Ein Release Candidate dient daher nur noch der Behebung von Fehlern. Werden beim Test Fehler gefunden, so wird ein weiterer Release Candidate erstellt. Dieser Prozess wird so lange wiederholt, bis der aktuellste Release Candidate fehlerfrei ist. Ready To Manufacturing (RTM) Bei einer RTM-Version handelt es sich bereits um die endgültige Version des Produkts, die auch in derselben Form in Produktion geht. Service Pack Ein Service Pack ist ein größeres Update eines Produkts, das nicht selten auch wesentliche Erweiterungen des Funktionsumfangs beinhaltet. Ein Service Pack beinhaltet normalerweise alle bis dahin erschienenen Updates sowie vorherige Service Packs. Hotfix Während neue Service Packs nur in relativ großen Zeitabständen verfügbar sind, erstellt Microsoft sehr häufig kleinere Updates, die kleinere Fehler beheben. Insbesondere wenn es sich um sicherheitsrelevante Fehler handelt, erscheinen diese sehr zeitnah nach deren Behebung in Form von Hotfixes. Kumulatives Update Da sich Hotfixes und andere Updates nach einiger Zeit ansammeln, werden diese von Zeit zu Zeit in kumulativen Updates zusammengefasst, die alle Updates seit dem letzten Service Pack beinhalten. Damit spart man sich die Einzelinstallation von zahlreichen separaten Updates. 2.2 Neuerungen bei SQL Server 2008 Mit SQL Server 2008 hielt eine ganze Reihe an Erweiterungen und Verbesserungen Einzug in das Produkt. Dabei handelt es sich im Gegensatz zum Wechsel von SQL Server 2000 zu 2005 nun eher um eine Evolution, da es weniger grundlegende Änderungen, sondern mehr konsequente Weiterentwicklungen einzelner Komponenten gibt, bei denen wohl auch viele Kritikpunkte der SQL Server-Benutzer- Community berücksichtigt wurden. Ein zentraler Aspekt bei vielen dieser Neuerungen ist das Ziel von Microsoft, mit den verschiedenen Editionen von SQL Server eine einheitliche Datenbanktechnologie zur Verfügung zu stellen, die von sehr kleinen Systemen (beispielsweise auf Mobile Devices) bis hin zu hochverfügbaren Unternehmensservern skalierbar ist. Wie weiter hinten in diesem Kapitel beim Vergleich der verschiedenen Editionen ersichtlich wird, ist dies auch gut gelungen. Doch beschränken wir uns vorerst auf die Neuerungen, die für die Express Edition relevant sind: 27

Kapitel 2 Der Microsoft SQL Server Neue Datentypen Einige der wichtigsten Neuerungen von SQL Server 2008 basieren auf den neuen Datentypen, die mit dieser Produktgeneration eingeführt wurden. So gibt es als Alternative zum altbewährten datetime- Datentyp nun endlich auch getrennte Datentypen für Uhrzeit (time) und Datum (date). Aber auch komplexere Datentypen sind hinzugekommen, was nicht zuletzt der konsequenteren Integration der Common Language Runtime zu verdanken ist. Denn hierdurch können Datentypen auf Basis von.net-klassen erzeugt werden. Die vielleicht interessantesten neuen Datentypen befassen sich mit der Speicherung von Geodaten. So gibt es einen Typ Geometry, der zweidimensionale geometrische Daten verarbeitet. Analog dazu gibt es den Datentyp Geography, mit dem man geografische Daten in Form von Längen- und Breitengrad speichern kann. Um mit hierarchischen Daten arbeiten zu können, ist der neue Datentyp HierarchyId hinzugekommen, der es ermöglicht, ganze Hierarchien in einer selbstreferenzierenden Tabelle besser abbilden zu können. Zur effektiveren Integration von unstrukturierten Daten, die beispielsweise als Dateien vorliegen, bietet SQL Server nun das Konstrukt der Filestreams an. Damit lassen sich Dateien in einem Ordner des Dateisystems ablegen, der aber vom SQL Server verwaltet wird und damit stets konsistent zur Datenbank selbst bleibt. Bisher gab es zur Lösung dieses Problems zwei gängige Varianten, die aber beide große Nachteile hatten. Entweder man speicherte die Dateien komplett in binären Datenbankfeldern, was zu einer extremen Vergrößerung der Datenbank führen kann, die dadurch sehr unhandlich wurde. Oder man speicherte in der Datenbank lediglich eine Verknüpfung auf eine Datei, die dann direkt im Dateisystem abgelegt wurde. Im letzteren Fall musste man aber selbst dafür Sorge tragen, dass Verknüpfungen und Dateien immer konsistent bleiben (also beispielsweise die Datei nicht verschoben oder gelöscht werden kann, ohne dass die Verknüpfung darauf auch aktualisiert wird). Beim Filestream wird der direkte Dateizugriff auf das entsprechende Verzeichnis aber vom SQL Server blockiert, sodass der Zugriff nur kontrolliert über die Mittel des SQL Server erfolgen kann. Sonstige Neuerungen für SQL Server 2008 Express Die meisten Änderungen im Bereich Administration beziehen sich auf die größeren Editionen von SQL Server. Aber auch für die Express Edition gibt es ein paar Neuerungen in diesem Umfeld. So lassen sich mit dem neuen Policy Based Management einheitliche Richtlinien für Server oder gar ganze Servergruppen definieren. Mehr hat sich allerdings im Bereich der Datenbankentwicklung getan. Das SQL Server Management Studio unterstützt nun endlich IntelliSense, was einerseits Arbeit spart und andererseits die Gefahr von Tippfehlern minimiert. Dazu lassen sich SQL-Skripts nun so wie es viele Entwickler auch von Visual Studio her gewohnt sind direkt im Management Studio mit Haltepunkten versehen und debuggen. Als wichtigster neuer SQL-Befehl kommt die Merge-Anweisung hinzu, die umgangssprachlich gerne auch als»upsert«bezeichnet wird, weil sie INSERT und UPDATE in einer Anweisung vereint. Dadurch kann mit einer einzigen Anweisung eine Zieltabelle aufgrund von einer Importtabelle mit demselben Primärschlüssel aktualisiert werden. Ist der Primärschlüssel bereits vorhanden, wird die vorhandene Zeile aktualisiert. Fehlt der Primärschlüssel, wird die fehlende Zeile eingefügt. Im Gegensatz zum SQL- Standard bietet die Microsoft-Variante des Merge-Befehls sogar noch die optionale Erweiterung, in der Zieltabelle vorhandene Zeilen zu löschen, wenn diese in der Importtabelle fehlen. 28

2.2 Neuerungen bei SQL Server 2008 Es gibt aber auch noch ein paar weitere Neuerungen, wie beispielsweise die Möglichkeit, beim Aufruf einer gespeicherten Prozedur ganze Tabellen als Parameter zu übergeben die sogenannten Tablevalued Parameter. Neue Features für die größeren Editionen von SQL Server 2008 Dazu gibt es noch eine ganze Reihe an neuen Features, die den größeren Editionen (Workgroup, Standard und Enterprise Edition) vorbehalten sind. Der Vollständigkeit halber sollen diese hier auch kurz erwähnt werden, ohne allzu detailliert darauf einzugehen. So kommt ab der Web bzw. Workgroup Edition die Möglichkeit dazu, mithilfe des Performance Data Collector bei nur geringer zusätzlicher Systemlast Performancedaten zu sammeln, die dann in entsprechenden Reports (dem Performance Data Warehouse) im SQL Server Management Studio abgerufen werden können. Ab der Standard Edition gibt es zusätzlich die Plan Guides, durch die man Optimizer Hints definieren kann, die automatisch auf alle Abfragen angewendet werden, die einer vorgegebenen Form entsprechen. Damit lassen sich die Vorteile von Optimizer Hints auch dann nutzen, wenn die Abfrage selbst nicht geändert werden kann. Mit der Enterprise Edition gibt es dann noch eine ganze Reihe von weiteren Features wie beispielsweise die transparente Datenbankverschlüsselung oder die ebenso transparente Kompression von Datenbanken und Backups. Dazu kommt der neue Resource Governor, mit dem man die maximale Prozessorund Speicherauslastung für selbst definierte Ressourcenpools festlegen kann. Durch die Zuordnung von Ressourcenpools zu Workloads, denen wiederum Logins zugeordnet werden, lässt sich damit genau steuern, wie sehr bestimmte Anwendungen und Benutzer das Gesamtsystem belasten dürfen. Zu den bereits genannten Neuerungen gibt es noch zahlreiche Erweiterungen und Verbesserungen im Business-Intelligence-Umfeld. Bei den Analysis Services gibt es nun Performanceverbesserungen für berechnete Kennzahlen sowie ein proaktives Caching. Im Bereich Data Mining gibt es ein neues Add-In für Microsoft Excel. Auch bei den Integration Services gibt es Performanceverbesserungen beispielsweise durch ein verbessertes Thread Handling und das Caching von Lookup-Tabellen. Dazu kommt endlich die Möglichkeit, Skript-Tasks und Skriptkomponenten neben Visual Basic.NET auch in C# zu programmieren. Bei den Reporting Services gibt es eine Reihe von Neuerungen, die sich teilweise auch auf die Express Edition beziehen. Hier sind vor allem die optisch ansprechenderen Chart Controls (die von Dundas lizenziert wurden) zu nennen sowie das neue Tablix Control, das die Vorteile von Tabelle und Matrix vereint. Generell gibt es mit dem SQL Server 2008 nun die Möglichkeit, die Reporting Services zu nutzen, ohne dass dafür ein Internet Information Server installiert sein muss. Die Liste der Neuerungen ist sicherlich nicht vollständig. Zu zahlreich sind die vielen Detailverbesserungen, die SQL Server mit der 2008er-Generation erhalten hat. Über die wesentlichsten Neuerungen sollten Sie nun aber informiert sein. I Einführung 29