Suchen und Finden
Service
Infos und Kontakt
Inhaltsverzeichnis
6
Vorwort
14
Kapitel 1 – Überblick
16
1.1 Better together
17
1.2 Microsoft-SQL-Server-2005-Produktfamilie
21
1.3 Datenbank-Anwendungen
24
1.4 Die Installation aus der Sicht des Entwicklers
30
1.5 Welche Werkzeuge muss der Entwickler kennen?
38
1.5.1 SQL Server Command Line Tool
39
1.5.2 SQL Server Configuration Manager
45
1.5.3 SQL Server Surface Area Configuration (SAC)
46
1.5.4 SQL Server Profiler
47
1.5.5 SQL Server Agent
49
1.5.6 SQL Server Import and Export Wizard
49
1.5.7 SQL Server Management Studio
50
1.5.8 SQL Server Business Intelligence Development Studio
56
1.6 Nachträgliches Passwort für sa?
57
1.7 AdventureWorks oder Northwind?
57
1.8 Wie geht es weiter?
60
Kapitel 2 – SQL vs. T-SQL
62
2.1 Was ist SQL?
62
2.2 Warum wird SQL verwendet?
64
2.3 Wie verwaltet SQL die Daten?
67
2.3.1 Datenbank-Objekte
67
2.3.2 SQL-Befehlsausführung
70
2.4 SQL-Zeichen
74
2.4.1 Kommentar
75
2.4.2 Anweisungsbegrenzer
75
2.4.3 Bezeichner und Namen
77
2.4.4 SQL-Schlüsselwörter
79
2.4.5 Sonderfall sp_ (special)
80
2.4.6 Unicode-Zeichen
81
2.5 SQL-Kommandoklassen
82
2.5.1 Data Definition Language (DDL)
82
2.5.2 Data Manipulation Language (DML)
94
2.5.3 Data Query Language (DQL)
95
2.5.4 Transaction Control Language (TCL)
101
2.5.5 Database Administration Language (DAL)
101
2.6 Operatoren
103
2.7 Funktionen
108
2.8 Wie geht es weiter?
112
Kapitel 3 – Datenbanken für den SQL Server 2005
114
3.1 System- vs. Benutzerdatenbank
114
3.1.1 Sonderfall User Instance = True (nur Express Edition)
115
3.1.2 Normalfall einer eingehängten Benutzerdatenbank
116
3.2 Neue Datenbank anlegen
117
3.2.1 Interaktiv über das SSMS
117
3.2.2 Datenbank über ein T-SQL-Script anlegen
119
3.3 Leistungsfähige Datenbanken
126
3.3.1 Neue Anforderungen
126
3.3.2 Problemzone CPU
128
3.3.3 Problemzone Festplatte
129
3.3.4 Filegroup
137
3.4 Datenbank-Design
141
3.4.1 Anforderungen an eine Datenbank
142
3.4.2 Relationale Datenbank
144
3.5 Die Tabelle als Ablageplatz der Daten
147
3.5.1 Relationen
148
3.5.2 Sicht-Tabelle (View)
148
3.5.3 Normalisierung
151
3.5.4 Denormalisierung
153
3.5.5 Gefahrenstelle Hotspot
154
3.5.6 PRIMARY KEY – der Fingerabdruck eines Datensatzes
157
3.5.7 FOREIGN KEY – der Sicherheitsgurt
166
3.5.8 Temporäre Tabellen
174
3.6 Index
175
3.6.1 CLUSTERED INDEX – der Karteikasten
176
3.6.2 NONCLUSTERED INDEX – die Abkürzung für Lesezugriffe
177
3.6.3 Covering Index
185
3.6.4 Zusammenfassung: Primärschlüssel als Clustered Index
186
3.6.5 Zusammenfassung: Primärschlüssel als Nonclustered Index
187
3.7 Constraints
187
3.7.1 DEFAULT
188
3.7.2 CHECK
191
3.8 Computed Column
192
3.9 Datenbankbenutzer
194
3.9.1 SQL-Server-Login
196
3.9.2 Beispiel Internet-Anwendung
201
3.9.3 Fixed Server Roles
201
3.10 Backup und Restore
201
3.10.1 Wiederherstellungsmodell „Vollständig&ldquo
202
3.10.2 Sind regelmäßige Datenbank-Backups ausreichend?
206
3.11 Wie geht es weiter?
208
Kapitel 4 – Transact-SQL im Detail
210
4.1 SELECT
210
4.1.1 Kartesisches Produkt – die schlechte Lösung
211
4.1.2 Die JOIN-Syntax
211
4.1.3 INNER JOIN
214
4.1.4 OUTER JOIN
214
4.1.5 SELF JOIN
215
4.1.6 CROSS JOIN
216
4.1.7 Correlated Subquery
216
4.1.8 Derived Table
217
4.1.9 CROSS APPLY und OUTER APPLY
218
4.1.10 WITH CUBE
219
4.1.11 GROUPING
220
4.1.12 WITH ROLLUP
220
4.1.13 Daten aus fremden Datenbankformaten abfragen
221
4.1.14 Daten aus externen Datenbanken abfragen
222
4.1.15 TOP(x)
224
4.1.16 EXCEPT und INTERSECT
225
4.1.17 RANK und DENSE_RANK
226
4.1.18 NTILE
227
4.1.19 TABLESAMPLE
228
4.1.20 ROW_NUMBER
228
4.1.21 Common Table Expressions (CTE)
230
4.1.22 PIVOT
235
4.1.23 UNPIVOT
236
4.1.24 SELECT generiert SQL-Anweisungen
238
4.1.25 CASE
238
4.2 INSERT, UPDATE und DELETE
239
4.2.1 BULK INSERT
239
4.2.2 UPDATE übernimmt Daten aus einer anderen Tabelle
240
4.2.3 TOP
241
4.2.4 OUTPUT
242
4.3 TRY..CATCH
243
4.3.1 Ein Blick zurück – das Verhalten im SQL Server 2000
243
4.3.2 Die neuen Möglichkeiten vom SQL Server 2005
245
4.3.3 Eleganter Migrationspfad
247
4.4 Neue Datentypen des SQL Server 2005
247
4.4.1 VARCHAR(MAX) und VARBINARY(MAX)
248
4.4.2 XML
249
4.5 Verschlüsselung
265
4.5.1 Warum Daten zusätzlich verschlüsseln?
265
4.5.2 Service Master Key
268
4.5.3 Database Master Key
268
4.5.4 EncryptByPassPhrase
270
4.5.5 Symmetrischer Schlüssel
272
4.5.6 Asymmetrische Schlüssel
273
4.5.7 Zertifikat
278
4.5.8 Verschlüsselte Daten übertragen (Weg 1)
281
4.5.9 Verschlüsselte Daten übertragen (Weg 2)
285
4.5.10 Verschlüsselte Datenbank verschieben
287
4.6 Database Mail
290
4.7 Transaktionen
297
4.7.1 Synchronisationsprobleme
297
4.7.2 Transaktionen
300
4.7.3 Transaktionsmodelle
307
4.7.4 Sperrverfahren
308
4.7.5 Isolationsgrad einer Transaktion
314
4.7.6 Deadlock
319
4.7.7 Transaction Log
324
Kapitel 5 – Stored Procedure, Trigger und Function
326
5.1 Variablen
326
5.2 Steuerung des Ausführungsverlaufs
328
5.2.1 IF…ELSE
328
5.2.2 GOTO
329
5.2.3 WHILE
330
5.2.4 RETURN
331
5.2.5 WAITFOR
332
5.2.6 RAISERROR
333
5.3 Cursor
335
5.3.1 Cursortypen
335
5.3.2 Cursor verwenden
336
5.3.3 FAST_FORWARD-Cursor
339
5.3.4 FOR UPDATE-Cursor
346
5.3.5 Gefahrenstelle CURSOR
348
5.4 Stored Procedure
350
5.4.1 Vorteile von Stored Procedures
350
5.4.2 Die Hallo-Welt-Prozedur anlegen
360
5.4.3 Aufruf einer Stored Procedure
362
5.4.4 WITH EXECUTE AS
368
5.4.5 Debuggen einer T-SQL Stored Procedure
369
5.4.6 Stored Procedure aus .NET heraus debuggen
375
5.4.7 Rekursionen
377
5.4.8 ALTER PROCEDURE
378
5.4.9 Default-Parameter
379
5.4.10 Benannte Parameter
380
5.4.11 Dynamische Tabellennamen
380
5.4.12 Implementierung über sp_helptext einsehen
382
5.4.13 Microsoft-Beispiele
383
5.5 Trigger
384
5.5.1 AFTER-Trigger
385
5.5.2 INSTEAD OF-Trigger
395
5.5.3 DDL-Trigger
398
5.5.4 Trigger deaktivieren
403
5.5.5 Microsoft-Beispiel
403
5.6 User-Defined Function
403
5.6.1 Scalar Function
404
5.6.2 Table-Valued Function
406
5.7 Die Darstellung im Object Explorer
408
5.8 Wie geht es weiter?
410
Kapitel 6 – CLR-Integration
412
6.1 Ein Blick zurück
412
6.2 Was ist „managed Code“?
416
6.3 Grundsätze der Implementierung
418
6.3.1 Sicherheit, Sicherheit und nochmals Sicherheit!
420
6.3.2 Assemblies
422
6.3.3 AppDomain
424
6.3.4 CAS (Code Access Security)
425
6.3.5 TRUSTWORTHY
430
6.3.6 Zusammenfassung
431
6.4 CLR-Unterstützung aktivieren
431
6.5 Das Minimal-Beispiel mit Notepad
432
6.5.1 Schritt 1: OSNotepadSP.vb oder OSNotepadSP.cs
433
6.5.2 Schritt 2: Assembly im SQL Server 2005 installieren
436
6.5.3 Schritt 3: Aliasname in der Datenbank einrichten
436
6.6 Besonderheiten
438
6.6.1 Speicherverbrauch der CLR?
438
6.6.2 Verweise auf externe Assemblies
441
6.6.3 Datentypen
441
6.6.4 Eigene Exceptions auslösen
444
6.7 Das Visual-Studio-2005-Beispiel
445
6.7.1 SQL Server Projekt von Visual Studio 2005
446
6.7.2 Deploy über Visual Studio 2005
449
6.7.3 Remote Debugging der CLR Stored Procedure
451
6.8 Der Wettkampf: T-SQL vs. SQLCLR
452
6.8.1 Disziplin Zeichenkettenlänge berechnen
452
6.8.2 Disziplin Zeichen ersetzen
453
6.9 Zugriff über ADO.NET auf die Datenbank
456
6.10 Das UNSAFE-Beispiel
457
6.11 CLR User-Defined Function
461
6.11.1 CLR Scalar-Valued Function
462
6.11.2 CLR Table-Valued Function
470
6.12 CLR Trigger
473
6.13 User-Defined Types?
476
6.14 Microsoft-Beispiele
477
Kapitel 7 – Server Management Objects (SMO)
478
7.1 Windows Management Instrumentation (WMI)
478
7.1.1 Was ist WMI?
478
7.1.2 WMI und der SQL Server 2005
479
7.2 Server Management Objects (SMO)
483
7.2.1 SMO-Objektmodell
484
7.2.2 SMO-Beispiel: Datenbankbackup
485
7.3 Microsoft-Beispiele
490
Kapitel 8 – SQL Server Reporting Services
492
8.1 Der Hallo-Welt-Bericht
494
8.2 Der Report Wizard
505
8.2.1 Schritt 1: Datenbanktabelle vorbereiten
506
8.2.2 Schritt 2: Neues Berichtsprojekt anlegen
507
8.2.3 Schritt 3: Bericht veröffentlichen
515
8.2.4 Schritt 4: Bericht in die eigene Anwendung integrieren
518
8.3 Report Manager
524
8.4 SQL Server Management Studio
526
8.5 Report Builder
526
8.5.1 Das Berichtsmodell
527
8.5.2 Der Report Builder
532
8.6 Das ReportViewer-Control
534
8.6.1 Das DataSet aus ADO.NET
534
8.6.2 ReportViewer
537
8.7 Microsoft-Beispiele
539
Kapitel 9 – Service Broker
540
9.1 Was ist ein Service Broker?
540
9.1.1 Der Microsoft SQL Server 2005 Service Broker (SSB)
542
9.1.2 Das Hello-World-Beispiel
545
9.1.3 Datenbankübergreifender Nachrichtenversand
562
9.1.4 Serverübergreifender Nachrichtenversand
571
9.1.5 Beispiel für den bidirektionalen Nachrichtenaustausch
572
9.1.6 Troubleshooting
577
9.1.7 Entscheidungskriterien
578
9.2 Event Notification
579
9.2.1 Das Prinzip
579
9.2.2 Das FOR CREATE_DATABASE-Beispiel
582
9.3 Query Notification
585
9.3.1 Das Prinzip
586
9.3.2 SqlDependency
587
9.3.3 SqlCacheDependency
594
9.3.4 SqlNotificationRequest
594
9.4 Microsoft-Beispiele
595
Kapitel 10 – Web Services
596
10.1 Wie funktioniert ein Web Service?
597
10.2 SQL Server 2005 Web Service
599
10.3 Das Beispiel für Windows XP
601
10.4 Der C#-Client für den SQL Server 2005 Web Service
606
10.5 Das Beispiel für Windows Server 2003
608
10.6 Resümee
612
Anhang A – Einführung in ADO.NET
614
A.1 Die Ziele
615
A.2 Wichtige Klassen (Komponenten)
617
A.2.1 Grundregel zu SqlConnection
619
A.2.2 SqlDataAdapter
621
A.2.3 SqlCommandBuilder
624
A.2.4 DataSet
625
A.2.5 DataTable
631
A.3 Typisiertes vs. untypisiertes DataSet
634
A.4 TableAdapter – der typisierte SqlDataAdapter
638
A.5 Data Source
639
A.5.1 BindingSource
643
A.5.2 Data-Sources-Fenster von Visual Studio 2005
644
A.5.3 TableAdapter und BindingSource
645
A.5.4 Master/Detail-Beziehungen
648
A.6 DataGridView
650
A.7 TableAdapter und Transaktionen
655
A.8 Resümee
662
Stichwortverzeichnis
664
Mehr eBooks vom gleichen Verlag
Java Web Services mit Apache Axis2, von: Thilo Frotscher, Marc Teufel, Dapeng Wang, Preis: 38,20 EUR
Online Content professionell, von: Harald Taglinger, Preis: 15,00 EUR
Sichere Webanwendungen schnell + kompakt, von: Andre Wussow, Preis: 8,40 EUR
Windows Forms mit Visual C++ - Professionell einsteigen, von: Dirk Louis, Preis: 29,70 EUR
Add-In Entwicklung für Visual Studio., von: Thomas Müller, Preis: 30,00 EUR
iPhone Anwendungsentwicklung für Einsteiger, von: Michael Kain, Preis: 20,00 EUR
db4o schnell + kompakt, von: Larysa Visengeriyeva, Patrick Römer, Preis: 5,50 EUR
Java 6 Programmierhandbuch, von: Dirk Frischalowski, Ulrike Böttcher, Preis: 46,70 EUR
Alle Preise verstehen sich inklusive der gesetzlichen MwSt.; Ersparnis im Vergleich zur Printversion





















