SQL Server 2017 - Der schnelle Einstieg
von: Klemens Konopasek
Carl Hanser Fachbuchverlag, 2018
ISBN: 9783446457256
Sprache: Deutsch
1047 Seiten, Download: 35762 KB
Format: EPUB, PDF, auch als Online-Lesen
Inhalt | 6 | ||
Vorwort | 14 | ||
1 Der SQL Server 2017 stellt sich vor | 20 | ||
? 1.1 SQL Server – wer ist das? | 21 | ||
1.1.1 Der SQL Server im Konzert der Datenbanksysteme | 21 | ||
1.1.2 Entscheidungsszenarien für Datenbanksysteme | 24 | ||
1.1.3 Komponenten einer Datenbankanwendung | 26 | ||
1.1.4 SQL Server – das Gesamtkonzept | 29 | ||
? 1.2 Versionen und Editionen des SQL Servers | 31 | ||
? 1.3 SQL Server 2017 installieren | 36 | ||
? 1.4 Datenbanken installieren und nutzen | 60 | ||
? 1.5 Gratis: die Express Edition | 66 | ||
? 1.6 SQL Server Feature Pack | 68 | ||
2 Die grafischen Tools des SQL Server 2017 | 72 | ||
? 2.1 Die Tools im Überblick | 72 | ||
? 2.2 Das Management Studio | 75 | ||
? 2.3 Das Kommandozeilentool: SQLCMD | 95 | ||
? 2.4 Der Konfigurations-Manager | 97 | ||
? 2.5 Das SQL Server-Installationscenter | 100 | ||
? 2.6 Der Profiler | 101 | ||
? 2.7 Der Datenbankoptimierungsratgeber | 102 | ||
? 2.8 Die SQL Server Data Tools | 104 | ||
? 2.9 Der Import/Export-Assistent | 108 | ||
? 2.10 Der SQL Server Migration Assistant | 118 | ||
? 2.11 SQL Operations Studio | 122 | ||
3 Eine neue Datenbank erstellen | 124 | ||
? 3.1 Erstellen einer neuen Datenbank | 124 | ||
3.1.1 Bestandteile einer Datenbank | 124 | ||
3.1.2 Datenbank mit dem grafischen Tool anlegen | 128 | ||
3.1.3 Datenbank über eine SQL-Anweisung erstellen | 136 | ||
3.1.4 Datenbank mit Filestream ausstatten | 137 | ||
? 3.2 Tabellen in der Datenbank erstellen | 142 | ||
3.2.1 Tabellenfelder definieren | 143 | ||
3.2.2 Spalteneigenscha@en | 147 | ||
3.2.3 Constraints | 150 | ||
3.2.4 Indizierung | 160 | ||
3.2.5 Erste Daten erfassen | 168 | ||
? 3.3 Datenbankdiagramme einsetzen | 171 | ||
? 3.4 Richtlinien für Benennungsregeln | 175 | ||
einsetzen | 175 | ||
? 3.5 Was Sie noch wissen sollten ... | 180 | ||
3.5.1 Tabellen in anderen Dateigruppen speichern | 180 | ||
3.5.2 Tabellen direkt mit DDL-Anweisungen erstellen | 182 | ||
3.5.3 Gefahren der grafischen Oberfläche | 183 | ||
3.5.4 Berechnete Spalten integrieren | 187 | ||
3.5.5 Objekte und Datenbanken skripten | 190 | ||
? 3.6 Tabelle mit Filestream und FileTable | 193 | ||
3.6.1 Tabelle mit Filestream erstellen | 194 | ||
3.6.2 Objekte in einer FileTable speichern | 200 | ||
? 3.7 Beispieldatenbank generieren | 214 | ||
? 3.8 Speicheroptimierte Tabellen | 216 | ||
3.8.1 Datenbank mit In-Memory-Filegroup erstellen | 216 | ||
3.8.2 Speicheroptimierte Tabelle anlegen | 218 | ||
3.8.3 Index für speicheroptimierte Tabellen | 222 | ||
3.8.4 Speichernutzung beschränken | 227 | ||
4 SQL – Zugriff auf Daten | 230 | ||
? 4.1 Einsatz des Abfrage-Designers | 232 | ||
4.1.1 Die Bereiche des Abfrage-Designers | 232 | ||
4.1.2 Erstellen einer Abfrage | 238 | ||
? 4.2 Sichten für den Datenzugriff gestalten | 252 | ||
4.2.1 Gründe für den Einsatz von Sichten | 253 | ||
4.2.2 Erstellen einer Sicht | 254 | ||
4.2.3 Daten aus einer Sicht abrufen | 256 | ||
? 4.3 SQL-Anweisungen verwenden | 258 | ||
4.3.1 Data Query Language (DQL) | 259 | ||
4.3.2 Data Manipulation Language (DML) | 269 | ||
4.3.3 Die MERGE-Anweisung | 270 | ||
4.3.4 Den Abfrage-Designer im Abfrageeditor einsetzen | 275 | ||
? 4.4 Abfragen mit Geodaten | 277 | ||
4.4.1 Typen im Geodatenmodell | 278 | ||
4.4.2 Geodaten in Tabellen speichern und verwenden | 284 | ||
4.4.3 Index für räumliche Daten | 301 | ||
5 Transact-SQL – die Sprache zur Serverprogrammierung | 306 | ||
? 5.1 Bestandteile und Funktionalität | 308 | ||
von Transact-SQL | 308 | ||
5.1.1 Variablen und Datentypen | 308 | ||
5.1.2 Benutzerdefinierte Tabellentypen | 316 | ||
5.1.3 Funktionen | 318 | ||
5.1.4 Kontrollstrukturen | 355 | ||
5.1.5 Cursor für Datenzugriffe einsetzen | 372 | ||
? 5.2 Transaktionen gezielt steuern | 378 | ||
5.2.1 Automatische Transaktionen | 379 | ||
5.2.2 Explizite und implizite Transaktionen | 380 | ||
5.2.3 Benannte Transaktionen | 386 | ||
? 5.3 SET-Optionen verwenden | 387 | ||
? 5.4 Fehlerbehandlung in den Code einbauen | 395 | ||
? 5.5 Sequenzen | 401 | ||
? 5.6 Paging mit OFFSET und FETCH | 404 | ||
? 5.7 Window-Funktionen | 405 | ||
6 Gespeicherte Prozeduren, Funktionen und Trigger | 408 | ||
? 6.1 Gespeicherte Prozeduren programmieren | 409 | ||
6.1.1 Aufbau einer gespeicherten Prozedur | 411 | ||
6.1.2 Erzeugen einer gespeicherten Prozedur | 412 | ||
6.1.3 Einfache gespeicherte Prozeduren | 422 | ||
6.1.4 Gespeicherte Prozeduren mit Eingabeparametern | 425 | ||
6.1.5 Ergebnisrückgabe von Prozeduren | 428 | ||
6.1.6 Cursor in gespeicherten Prozeduren nutzen | 439 | ||
6.1.7 Transaktionen in Prozeduren | 447 | ||
6.1.8 Table-Valued Parameter einsetzen | 452 | ||
6.1.9 Systemintern kompilierte gespeicherte Prozeduren | 457 | ||
6.1.10 Gespeicherte Prozeduren aus Client-Anwendungen heraus | 468 | ||
aufrufen | 468 | ||
? 6.2 Mit Triggern automatisieren | 483 | ||
6.2.1 DML-Trigger: Insert, Update, Delete | 484 | ||
6.2.2 Triggerreihenfolge festlegen | 504 | ||
6.2.3 INSTEAD OF-Trigger | 506 | ||
6.2.4 Rekursive Trigger | 509 | ||
6.2.5 Trigger löschen | 521 | ||
6.2.6 Systemeigen kompilierte Trigger | 522 | ||
6.2.7 DDL-Trigger | 527 | ||
? 6.3 Benutzerdefinierte Funktionen implementieren | 534 | ||
6.3.1 Skalarwertfunktionen | 534 | ||
6.3.2 Inline-Funktionen | 540 | ||
6.3.3 Tabellenwertfunktionen | 542 | ||
6.3.4 Systemintern kompilierte benutzerdefinierte Funktionen | 548 | ||
? 6.4 Debuggen | 551 | ||
6.4.1 Voraussetzungen für das Debuggen | 551 | ||
6.4.2 Debuggen einer gespeicherten Prozedur | 553 | ||
6.4.3 Debuggen von Triggern | 558 | ||
6.4.4 Debuggen von Funktionen | 561 | ||
? 6.5 Praxistipps | 562 | ||
6.5.1 Fehleranalyse mit ERROR_MESSAGE() | 563 | ||
6.5.2 Fehler gezielt zur Ablaufsteuerung einsetzen | 565 | ||
6.5.3 Fehlerprotokoll führen | 568 | ||
6.5.4 Über Fehler benachrichtigen lassen | 570 | ||
6.5.5 Automatisierte Importe mit BULK INSERT | 574 | ||
7 SQL Server CLR-Integration | 580 | ||
? 7.1 Mit im Boot: .NET Framework | 581 | ||
7.1.1 Integration mit dem Visual Studio | 583 | ||
? 7.2 CLR-Aktivierung | 586 | ||
7.2.1 Code auf den Server bringen: Assembly | 589 | ||
? 7.3 .NET User-Defined Functions | 592 | ||
? 7.4 .NET Stored Procedures | 600 | ||
7.4.1 Datenzugriff aus der CLR heraus | 600 | ||
7.4.2 Prozeduren mit Werterückgabe | 601 | ||
7.4.3 Zugriff auf externe Daten | 608 | ||
? 7.5 .NET-Trigger | 615 | ||
? 7.6 User-Defined Aggregates (UDA) | 624 | ||
? 7.7 Externe Assemblys verwenden | 631 | ||
? 7.8 CLR-Sicherheitseinstellungen | 638 | ||
7.8.1 Assembly als vertrauenswürdig erklären | 639 | ||
7.8.2 Assembly signieren | 643 | ||
? 7.9 Verwalten des Servers mit SMO | 651 | ||
? 7.10 Übrigens: Debuggen | 657 | ||
7.10.1 Debuggen einer T-SQL Stored Procedure | 658 | ||
7.10.2 Debuggen einer .NET-Stored Procedure | 660 | ||
8 Data Tier Applications und SQL Server Data Tools | 664 | ||
? 8.1 Datenebenenanwendungen | 664 | ||
8.1.1 DAC über Management Studio erstellen | 665 | ||
8.1.2 Eine DAC auf dem SQL Server bereitstellen | 668 | ||
8.1.3 Aktualisieren einer DAC | 670 | ||
8.1.4 Entfernen einer DAC | 673 | ||
8.1.5 Von DACPAC zu BACPAC | 673 | ||
8.1.6 Erstellen einer DAC mit dem Visual Studio | 678 | ||
? 8.2 Die SQL Server Data Tools | 679 | ||
8.2.1 Ein neues Datenbankprojekt erstellen | 679 | ||
8.2.2 Datenbankobjekte erstellen | 681 | ||
8.2.3 Datenbankprojekt bereitstellen | 686 | ||
8.2.4 Schemavergleich | 689 | ||
8.2.5 Datenbank in ein Datenbankprojekt importieren | 694 | ||
8.2.6 Ersatz für das Management Studio? | 697 | ||
? 9.1 Anfügen und Trennen von Datenbanken | 700 | ||
9 Client-Server-Datenbank verwalten | 700 | ||
Unknown | 0 | ||
9.1.1 Trennen einer Datenbank | 701 | ||
9.1.2 Anfügen einer Datenbank | 704 | ||
9.1.3 Option „Automatisch schließen“ | 710 | ||
? 9.2 Datenbank sichern | 711 | ||
9.2.1 Sicherungsvarianten | 711 | ||
9.2.2 Sicherungsziele | 713 | ||
9.2.3 Sicherung mit dem Management Studio | 716 | ||
9.2.4 Sicherung über TRANSACT-SQL | 722 | ||
9.2.5 Zeitgesteuerte Sicherung mit dem SQL Server-Agent | 726 | ||
9.2.6 Zeitgesteuerte Sicherung mit der Express Edition | 730 | ||
9.2.7 Datenbank wiederherstellen | 734 | ||
9.2.8 Einsatz der Zeitachse beim Wiederherstellen | 738 | ||
9.2.9 Wiederherstellung über Transact-SQL | 743 | ||
9.2.10 Desaster Recovery | 744 | ||
9.2.11 Recovery mit FILESTREAM | 751 | ||
? 9.3 Datenänderungen protokollieren | 754 | ||
9.3.1 Change Data Capture | 754 | ||
9.3.2 Temporale Tabellen | 760 | ||
? 9.4 Mit mehreren Instanzen arbeiten | 786 | ||
9.4.1 Standardinstanzen und benannte Instanzen | 787 | ||
9.4.2 Zugriff auf Instanzen steuern | 789 | ||
10 Sicherheit und Zugriffsberechtigungen | 794 | ||
? 10.1 Authentifizierungsmodi – Anmeldungen | 794 | ||
und Benutzer | 794 | ||
10.1.1 Windows-Authentifizierung | 796 | ||
10.1.2 Gemischter Modus | 797 | ||
10.1.3 Anmeldung und Benutzer | 797 | ||
? 10.2 Berechtigungen | 799 | ||
? 10.3 Rollen | 800 | ||
10.3.1 Serverrollen | 800 | ||
10.3.2 Datenbankrollen | 803 | ||
10.3.3 Anwendungsrollen | 804 | ||
? 10.4 Anmeldeinformationen (Credentials) | 805 | ||
? 10.5 Schema | 807 | ||
? 10.6 Verwaltung im Management Studio | 809 | ||
10.6.1 Serveranmeldung hinzufügen | 809 | ||
10.6.2 Schema anlegen | 815 | ||
10.6.3 Datenbankbenutzer hinzufügen | 815 | ||
10.6.4 Rollen in einer Datenbank anlegen | 819 | ||
? 10.7 Berechtigungen vergeben | 821 | ||
10.7.1 Berechtigungen auf Datenbankebene | 821 | ||
10.7.2 Berechtigungen auf Serverebene | 829 | ||
? 10.8 Lösungen mit T-SQL | 830 | ||
10.8.1 Sicherheitsobjekte anlegen | 831 | ||
10.8.2 Generische Skripte | 837 | ||
? 10.9 Contained Databases | 837 | ||
? 10.10 Administratorzugriff wiederherstellen | 845 | ||
? 10.11 Indirekte Zugriffe verwalten | 849 | ||
10.11.1 Datenzugriffe über Sichten | 850 | ||
10.11.2 Sicherheit mit Prozeduren erhöhen | 851 | ||
? 10.12 Sicherheit auf Zeilenebene | 858 | ||
10.12.1 Bestandteile von Row Level Security (RLS) | 859 | ||
10.12.2 Sicherheitsfunktion erstellen | 862 | ||
10.12.3 Security Policy definieren | 865 | ||
10.12.4 Ändern von Sicherheitsrichtlinien | 868 | ||
? 10.13 Zugriff auf andere Server | 871 | ||
10.13.1 SQL Server als Verbindungsserver | 873 | ||
10.13.2 Verbindungsserver mit Fremdprodukten | 880 | ||
? 10.14 Daten verschlüsseln | 884 | ||
mit Always Encrypted | 884 | ||
10.14.1 Voraussetzungen für Always Encrypted | 885 | ||
10.14.2 Konfiguration von Always Encrypted | 886 | ||
10.14.3 Vorhandene Daten verschlüsseln | 893 | ||
10.14.4 Abfragen von verschlüsselten Daten | 896 | ||
10.14.5 Erstellen von Tabellen mit verschlüsselten Spalten | 900 | ||
10.14.6 Einfügen von Daten mit Verschlüsselung | 903 | ||
10.14.7 Treibereinsatz am Client | 906 | ||
? 11.1 Datenbank-E-Mail | 910 | ||
11 Sicherheit und Funktionalitäten | 910 | ||
Unknown | 0 | ||
11.1.1 Einrichten von Datenbank-E-Mail | 911 | ||
11.1.2 E-Mails aus der Anwendung heraus versenden | 918 | ||
11.1.3 Varianten des E-Mail-Versands | 920 | ||
11.1.4 Konfiguration über Systemprozeduren | 927 | ||
11.1.5 Mailbenachrichtigung für Agent-Au@räge | 933 | ||
? 11.2 Integration Services | 941 | ||
11.2.1 Datenabgleich mit IS | 942 | ||
11.2.2 Pakete ausführen und auf den Server bringen | 965 | ||
11.2.3 SSIS-Projekte auf den Server bringen | 967 | ||
12 SQL Server 2017 auf Linux | 974 | ||
? 12.1 Installation des SQL Servers | 976 | ||
? 12.2 Kommandozeilentools installieren | 981 | ||
12.2.1 SQLCmd mit ODBC | 981 | ||
12.2.2 mssql-cli | 985 | ||
? 12.3 Server-Agent ergänzen | 989 | ||
? 12.4 Integration Services | 990 | ||
? 12.5 Serverdienst starten | 991 | ||
? 12.6 Updates installieren | 992 | ||
? 12.7 Weitere Konfiguration | 994 | ||
? 12.8 Windows-Authentifizierung | 999 | ||
? 12.9 Linux auch am Client: | 1007 | ||
SQL Operations Studio | 1007 | ||
Anhang | 1012 | ||
? A.1 Die Tabellen der Datenbank WAWI | 1012 | ||
Index | 1024 |