Nicht aus der Schweiz? Besuchen Sie lehmanns.de

SQL Server 2012

Das Programmierhandbuch. Inkl. ADO.NET 4.0 Entity Framework
Buch | Hardcover
1294 Seiten
2012 | 5. Auflage
Galileo Press (Verlag)
978-3-8362-1944-0 (ISBN)

Lese- und Medienproben

SQL Server 2012 - Dirk Mertins, Jörg Neumann, Andreas Kühnel
CHF 83,85 inkl. MwSt
zur Neuauflage
  • Titel erscheint in neuer Auflage
  • Artikel merken
Zu diesem Artikel existiert eine Nachauflage
Dieses bewährte, umfassende Handbuch richtet sich sowohl an Einsteiger als auch an erfahrene Datenbank-Entwickler, die auf praxisorientierte und anschauliche Weise die Programmierung von SQL Server 2012 erlernen und sich die vielfältigen Möglichkeiten vollständig erschließen möchten. Vom ersten Datenbankentwurf und den SQL-Grundlagen, der Migration von SQL Server 2008 oder SQL Server 2005 bis hin zu den neuen Features und konkreten Programmierbeispielen beschreiben die Autoren alles Notwendige, um den SQL Server 2012 als Programmierplattform und Datenmanagement-Server zu nutzen.


Aus dem Inhalt:



* Installation und Migration
* Datentypen in SQL Server 2012
* Datenbankentwurf
* Grundlagen T-SQL-Programmierung
* Benutzerverwaltung und Schemata
* Gespeicherte Prozeduren
* Benutzerdefinierte Funktionen
* Einsatz von Triggern
* Event Notification
* XML, Webservices, PowerShell
* Datenbankzugriff mit ADO.NET und LINQ
* ADO.NET Entity Framework

Dirk Mertins ist Microsoft Certified Solution Developer (MCSD) und Microsoft Certified Database Administrator (MCDBA). Er ist freiberuflicher Trainer für die Themen SQL-Programmierung und Datenbanken.

Jörg Neumann ist Principal Consultant bei der Acando GmbH in Hamburg, Associate bei thinktecture und Microsoft MVP im Bereich Client App Dev. Er berät seit vielen Jahren Unternehmen bei der Technologieauswahl und der Architektur komplexer Anwendungen. Sein Fokus liegt hierbei auf Client-Technologien wie WPF, Silverlight und Windows 8. Darüber hinaus vermittelt er sein Wissen regelmäßig in Form von Büchern, Artikeln sowie als Referent auf Entwicklerkonferenzen. headwriteline.blogspot.com. Jörg Neumann berät seit vielen Jahren Unternehmen bei Technologieauswahl und Architektur komplexer Anwendungen.

Andreas Kühnel studierte in den 80ern in Aachen Luft- und Raumfahrttechnik. Sein Interesse tendierte zur Programmierung und ab 1995 machte er sein Hobby zum Beruf, erwarb die Zertifizierungen "Microsoft Certified Solution Developer (MCSD)" und seitdem tätig als "Microsoft Certified Trainer (MCT)". Er unterrichtet Visual Basic, COM/COM, Datenbanktechnologien, .NET-Programmierung und C sharp. Der Autor lebt in Aachen.


Vorwort ... 31




Grundlagen ... 33



1. Installation und Aktualisierung von SQL Server 2012 ... 35


1.1 ... Überblick über die verfügbaren SQL-Server-2012-Versionen ... 35

1.2 ... Installationsvoraussetzungen ... 37

1.3 ... Installation von SQL Server 2012 ... 38

1.4 ... Installation der SQL-Server-Beispieldatenbank ... 49

1.5 ... Aktualisierung auf SQL Server 2012 ... 52



2. Datenbankgrundlagen ... 65


2.1 ... Server und Client ... 65

2.2 ... Relationale Datenbanken ... 66

2.3 ... Datenbankmanagementsystem ... 84

2.4 ... Integritätsarten ... 87



3. Logischer Datenbankentwurf ... 89


3.1 ... Grundlagen des Datenbankentwurfs ... 89

3.2 ... Normalisierungsregeln (Normalformen) ... 90

3.3 ... Normalisierung in der Praxis ... 97

3.4 ... Denormalisierung ... 100

3.5 ... Entity-Relationship-Diagramme ... 102



4. Die Oberfläche von SQL Server 2012 ... 105


4.1 ... Das SQL Server Management Studio ... 105

4.2 ... Das Bearbeiten von SQL-Anweisungen im Management Studio ... 123

4.3 ... SQL-Server-Dokumentation und Hilfen zur Programmierung ... 139

4.4 ... Überblick über die SQL-Server-Dienste ... 151

4.5 ... Das Dienstprogramm sqlcmd ... 152

4.6 ... SQL-Server-Integration in die Windows PowerShell ... 155

4.7 ... Der SQL-Server-Aktivitätsmonitor ... 163

4.8 ... Berichte ... 165




SQL-Programmierung ... 167



5. Grundlegende Abfragetechniken ... 169


5.1 ... Einführung in SQL ... 169

5.2 ... SQL-Grundlagen ... 170

5.3 ... Grundlegende Operatoren ... 179

5.4 ... Einfache Abfragen ... 183

5.5 ... Auswahloperatoren ... 198

5.6 ... Aggregatfunktionen ... 205

5.7 ... Unterabfragen ... 209

5.8 ... Zusammenfassung, Gruppierung und Beschränkung von Abfrageergebnissen ... 215

5.9 ... Die Mengen-Operatoren EXCEPT und INTERSECT ... 226

5.10 ... Ausgaben mit PRINT und SELECT ... 228



6. Grundlagen der SQLProgrammierung ... 231


6.1 ... Das Stapeltrennzeichen GO ... 231

6.2 ... (Lokale) Variablen ... 233

6.3 ... Ablaufsteuerung ... 241

6.4 ... Fallunterscheidungen ... 252

6.5 ... Funktionen ... 259

6.6 ... Dynamische SQL-Anweisungen ... 279

6.7 ... Fehler in SQL Server und ihre Behandlung ... 281

6.8 ... Fehlerbehandlung ... 283



7. Mehrtabellenabfragen ... 305


7.1 ... Tabellen verknüpfen (JOIN-Anweisung) ... 305

7.2 ... Abfragen unter Verwendung mehrerer Server ... 314



8. Erstellen und Ändern von Datenbanken ... 317


8.1 ... Erstellen einer einfachen Datenbank ... 317

8.2 ... Einfluss der »model«-Datenbank auf das Erstellen neuer Datenbanken ... 325

8.3 ... Löschen von Datenbanken ... 326

8.4 ... Erstellen einer Datenbank mit mehreren Dateien ... 327

8.5 ... Nachträgliche Änderungen an Datenbankdateien ... 329

8.6 ... Erstellen einer Datenbank mit mehreren Dateigruppen ... 332

8.7 ... Datenbanken verkleinern ... 335

8.8 ... Datenbankdateien verkleinern ... 336

8.9 ... Gespeicherte Systemprozeduren (Stored Procedures) zur Datenbankverwaltung ... 338

8.10 ... Datenbank-Momentaufnahmen ... 338

8.11 ... RAID-Systeme ... 348

8.12 ... Transparente Datenverschlüsselung ... 352



9. Erstellen von Tabellen ... 355


9.1 ... Die grundlegende Syntax zur Tabellenerstellung ... 355

9.2 ... Tabellen ändern ... 371

9.3 ... Löschen von Tabellen ... 374

9.4 ... Implementierung der Datenintegrität ... 374

9.5 ... Anwendungsbeispiel zu Einschränkungen ... 382

9.6 ... Nachträgliche Definition von Einschränkungen ... 384

9.7 ... Verwaltung von Einschränkungen ... 384

9.8 ... Temporäre Tabellen ... 386

9.9 ... Partitionierung von Tabellen ... 389



10. Speicherung von Daten in FileTables ... 397


10.1 ... Voraussetzungen für die Verwendung von FileTables ... 397

10.2 ... Erstellung einer FileTable ... 400

10.3 ... Zugriff auf eine FileTable ... 402

10.4 ... Sichten zur Abfrage vorhandener FileTables in einer Datenbank ... 404



11. Verwendung der räumlichen und hierarchischen Datentypen ... 405


11.1 ... Räumliche Datentypen ... 405

11.2 ... Der hierarchische Datentyp ... 436



12. Daten verwalten ... 445


12.1 ... Grundlegende Befehle zur Datensatzmanipulation ... 445

12.2 ... Verwendung des Zeilenkonstruktors ... 454

12.3 ... Kombinierte Auswahl-/Einfügeanweisungen ... 455

12.4 ... Die MERGE-Anweisung ... 457

12.5 ... Massenkopierprogramme ... 464



13. Benutzerverwaltung und Schemas ... 467


13.1 ... Authentifizierung am Server ... 468

13.2 ... Datenbankzugriff erteilen ... 473

13.3 ... Zusammenfassung von Benutzern zu Rollen ... 475

13.4 ... Rechtevergabe an Benutzer und Rollen ... 481

13.5 ... Deaktivierung und Aktivierung von Logins und Datenbankbenutzern ... 488

13.6 ... Vordefinierte Konten auf Server- und Datenbankebene ... 490

13.7 ... Schema ... 493



14. Sichten ... 499


14.1 ... Einsatz von Sichten ... 501

14.2 ... Verwalten von Sichten ... 502

14.3 ... Datenmanipulationsanweisungen auf eine Sicht ... 505

14.4 ... Systemsichten von SQL Server ... 510



15. Programmierung von gespeicherten Prozeduren ... 513


15.1 ... Überblick über die Verwendung von gespeicherten Prozeduren in SQL Server ... 513

15.2 ... Erstellung und Aufruf von gespeicherten Prozeduren ... 517

15.3 ... Tabellenübergabe an eine gespeicherte Prozedur ... 534

15.4 ... Optionen von gespeicherten Prozeduren ... 536



16. Programmierung von benutzerdefinierten Funktionen ... 543


16.1 ... Überblick über benutzerdefinierte Funktionen ... 543

16.2 ... Skalare Funktionen (Skalarwertfunktionen) ... 544

16.3 ... Inlinefunktionen (Tabellenwertfunktionen) ... 548

16.4 ... Tabellenwertfunktion mit mehreren Anweisungen ... 551

16.5 ... Ändern und Löschen von benutzerdefinierten Funktionen ... 554

16.6 ... Verwendung des Datentyps »table« als lokale Variable ... 554



17. Programmierung und Einsatz von Triggern ... 559


17.1 ... DML-Trigger ... 559

17.2 ... DDL-Trigger ... 581



18. Nachverfolgung von Datenänderungen ... 587


18.1 ... Die Möglichkeiten zur Nachverfolgung von Datenänderungen: Change Data Capture und die Änderungsnachverfolgung ... 587

18.2 ... Change Data Capture ... 588

18.3 ... Änderungsnachverfolgung ... 603



19. Ereignisbenachrichtigungen (Event Notifications) ... 609


19.1 ... Konfiguration einer Datenbank zur Nutzung des Service Brokers ... 610

19.2 ... Konfiguration des Zieldienstes ... 611

19.3 ... Erstellen einer Ereignisbenachrichtigung ... 613

19.4 ... Auslösen und Empfangen einer Ereignisbenachrichtigung ... 614

19.5 ... Service-Broker-Aktivierung ... 615

19.6 ... Löschen der erstellten Objekte ... 619



20. Erstellung und Einsatz eines Cursors ... 621


20.1 ... Funktionsweise eines Cursors ... 621

20.2 ... Erstellung eines Cursors ... 623

20.3 ... Öffnen eines Cursors ... 625

20.4 ... Das Abrufen von Datensätzen aus einem Cursor ... 626

20.5 ... Schließen und Löschen eines Cursors ... 635

20.6 ... Schleifenprogrammierung zum automatischen Durchlaufen eines Cursors ... 636

20.7 ... Daten in der Cursorauswahl aktualisieren und löschen ... 641



21. Sequenzen ... 643


21.1 ... Erstellung einer Sequenz mit Standardeinstellungen ... 643

21.2 ... Informationen zu den vorhandenen Sequenzen in einer Datenbank ... 644

21.3 ... Abrufen von Sequenzwerten ... 644

21.4 ... Die Verwendung der Parameter AS, START, INCREMENT, MINVALUE, MAXVALUE, CYCLE und CACHE ... 646



22. Indizes ... 655


22.1 ... Der nicht gruppierte Index auf einem Heap ... 656

22.2 ... Der gruppierte Index ... 660

22.3 ... Der nicht gruppierte Index auf einem gruppierten Index ... 663

22.4 ... Der Columnstore-Index ... 666

22.5 ... Erstellung von Indizes ... 667

22.6 ... Verwaltung von Indizes ... 671

22.7 ... Statistiken ... 674

22.8 ... Planung des Einsatzes von Indizes ... 680

22.9 ... Weitere Optimierungsmöglichkeiten mit Hilfe von Indizes ... 688



23. Transaktionen ... 697


23.1 ... Einführung in Transaktionen ... 697

23.2 ... ACID ... 700

23.3 ... Interne Transaktionsverarbeitung ... 702

23.4 ... Verhalten bei Systemfehlern ... 704

23.5 ... Programmierung expliziter Transaktionen ... 705

23.6 ... Implizite Transaktionen ... 709

23.7 ... Sperren ... 711

23.8 ... Isolationsstufen auf Verbindungsebene ... 713

23.9 ... Sperrhinweise auf Tabellenebene ... 723

23.10 ... Informationen zu Sperren ... 725

23.11 ... Deadlocks ... 725




.NET-Programmierung ... 731



24. SQL Server als Laufzeitumgebung für .NET ... 733


24.1 ... Die Programmiermodelle im Vergleich ... 733

24.2 ... Die CLR-Integration im Detail ... 737

24.3 ... Der Hosting-Layer ... 741

24.4 ... Verwaltung von Assemblies ... 744

24.5 ... Sicherheitsstufen ... 745



25. .NET-Programmierung ... 747


25.1 ... CLR-Unterstützung aktivieren ... 747

25.2 ... CLR-Prozeduren und Funktionen ... 749

25.3 ... Gespeicherte Prozeduren ... 754

25.4 ... Benutzerdefinierte Funktionen ... 762

25.5 ... Serverseitiger Datenzugriff mit ADO.NET ... 770

25.6 ... Pipes ... 772

25.7 ... Impersonalisierung ... 780

25.8 ... Benutzerdefinierte Typen ... 785

25.9 ... Benutzerdefinierte Aggregate ... 801

25.10 ... Benutzerdefinierte Trigger ... 809

25.11 ... Administration und Monitoring von CLR-Objekten ... 816



26. T-SQL: Erweiterte Themen ... 821


26.1 ... CROSS APPLY und OUTER APPLY ... 823

26.2 ... Kreuztabellen mit PIVOT erstellen ... 825

26.3 ... Common Table Expressions ... 833

26.4 ... Fehlerbehandlung ... 841

26.5 ... Ranking- und Windowing-Funktionen ... 848

26.6 ... Die OUTPUT-Klausel ... 855

26.7 ... Die TABLESAMPLE-Klausel ... 857

26.8 ... EXCEPT- und INTERSECT-Statement ... 859

26.9 ... Tabellenwertparameter ... 861



27. Einsatz von XML in der Datenbank ... 867


27.1 ... Warum XML? ... 868

27.2 ... HTML und XML ... 868

27.3 ... XML-Fähigkeiten von SQL Server ... 873

27.4 ... Der XML-Datentyp ... 873

27.5 ... Auf gespeicherte XML-Daten zugreifen ... 879

27.6 ... Darstellung von Abfrageergebnissen im XML-Format ... 891

27.7 ... XML-Schema ermitteln ... 908

27.8 ... XML-Daten in einem relationalen Modell speichern ... 909



28. Datenbankzugriff mit ADO.NET ... 913


28.1 ... Einleitung ... 913

28.2 ... Die Datenprovider ... 917

28.3 ... Die Verbindung zu einer Datenbank herstellen ... 918

28.4 ... Die Datenbankabfrage ... 941

28.5 ... Das SqlDataReader-Objekt ... 947

28.6 ... Parametrisierte Abfragen ... 956

28.7 ... Der SqlDataAdapter ... 971

28.8 ... Daten im lokalen Speicher -- das DataSet ... 984

28.9 ... Mit mehreren Tabellen arbeiten ... 1010

28.10 ... Aktualisieren der Datenbank ... 1018

28.11 ... Objekte vom Typ DataView ... 1047

28.12 ... Stark typisierte DataSets ... 1053

28.13 ... Fazit: Typisierte oder nicht typisierte DataSets? ... 1078

28.14 ... Projekte mit grafischer Benutzeroberfläche ... 1079

28.15 ... Datenbindung ... 1088



29. LINQ ... 1103


29.1 ... LINQ-relevante Sprachfeatures in C# ... 1104

29.2 ... LINQ to Objects ... 1119



30. Einführung in das ADO.NET Entity Framework ... 1149


30.1 ... Kritische Betrachtung von ADO.NET ... 1149

30.2 ... Ein erstes Entity Data Model (EDM) erstellen ... 1152

30.3 ... Das Entity Data Model im Designer ... 1155

30.4 ... Der Aufbau des Entity Data Models ... 1161

30.5 ... Die Klassen des Entity Data Models (EDM) ... 1165

30.6 ... Die Architektur des Entity Frameworks ... 1171



31. Datenabfragen des Entity Data Models (EDM) ... 1175


31.1 ... Abfragen mit LINQ to Entities ... 1176

31.2 ... Abfragen mit Entity SQL ... 1199

31.3 ... Der EntityClient-Provider ... 1205

31.4 ... Abfrage-Generator-Methoden (QueryBuilder-Methoden) ... 1208

31.5 ... SQL-Direktabfragen ... 1209



32. Entitätsaktualisierung und Zustandsverwaltung ... 1211


32.1 ... Aktualisieren von Entitäten ... 1211

32.2 ... Der Lebenszyklus einer Entität im Objektkontext ... 1220

32.3 ... Das »ObjectStateEntry«-Objekt ... 1229

32.4 ... Die Klasse »EntityKey« ... 1234

32.5 ... Komplexere Szenarien ... 1236



33. Konflikte behandeln ... 1241


33.1 ... Allgemeine Betrachtungen ... 1241

33.2 ... Konkurrierende Zugriffe mit dem Entity Framework ... 1243



34. Plain Old CLR Objects (POCOs) ... 1251


34.1 ... Ein erstes Projekt mit POCO-Klassen ... 1251

34.2 ... Datenabfrage mit Hilfe der POCOs ... 1255

34.3 ... Änderungen verfolgen ... 1257



Index ... 1265

Erscheint lt. Verlag 30.8.2012
Reihe/Serie Galileo Computing
Sprache deutsch
Maße 168 x 240 mm
Gewicht 2295 g
Einbandart gebunden
Themenwelt Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Schlagworte 2012 • Handbuch • Microsoft • Microsoft SQL Server 2012; Programmierung • Programmierung • Server • SQL
ISBN-10 3-8362-1944-1 / 3836219441
ISBN-13 978-3-8362-1944-0 / 9783836219440
Zustand Neuware
Haben Sie eine Frage zum Produkt?
Wie bewerten Sie den Artikel?
Bitte geben Sie Ihre Bewertung ein:
Bitte geben Sie Daten ein:
Mehr entdecken
aus dem Bereich
Der Einstieg ins Informatikstudium

von Heinrich Müller; Frank Weichert

Buch | Softcover (2023)
Springer Vieweg (Verlag)
CHF 48,95
Das Handbuch für Webentwickler

von Philip Ackermann

Buch | Hardcover (2023)
Rheinwerk (Verlag)
CHF 69,85
das große Praxisbuch – Grundlagen, fortgeschrittene Themen und Best …

von Ferdinand Malcher; Danny Koppenhagen; Johannes Hoppe

Buch | Hardcover (2023)
dpunkt (Verlag)
CHF 59,95