Das Programmiererhandbuch SQL Server 2005 Inkl

Werbung
Dirk Mertins, Jörg Neumann, Andreas Kühnel
Das Programmiererhandbuch SQL Server 2005
Inkl. ADO.NET 2.0
Auf einen Blick
Vorwort .................................................................................
23
1
Installation und Aktualisierung ............................................
25
2
Datenbankgrundlagen ..........................................................
59
3
Logischer Datenbankentwurf ...............................................
85
4
Die neue Oberfläche des SQL Servers .................................. 101
5
Grundlegende Abfragetechniken .......................................... 151
6
Grundlagen der SQL-Programmierung ................................. 203
7
Mehrtabellenabfragen .......................................................... 265
8
Erstellen und Ändern von Datenbanken ............................... 277
9
Erstellen von Tabellen ........................................................... 305
10
Daten verwalten ................................................................... 327
11
Benutzerverwaltung und Schemata ..................................... 341
12
Sichten .................................................................................. 371
13
Programmierung von gespeicherten Prozeduren ................. 385
14
Programmierung von benutzerdefinierten Funktionen ........ 413
15
Programmierung und Einsatz von Triggern .......................... 429
16
Erstellung und Einsatz eines Cursors ................................... 457
17
Indizes ................................................................................... 479
18
Transaktionen ....................................................................... 513
19
Der SQL Server als Laufzeitumgebung für .NET ................... 551
20
.NET-Programmierung .......................................................... 565
21
T-SQL: Neuerungen und Verbesserungen ............................ 637
22
Einsatz von XML in der Datenbank ...................................... 677
23
Der Einsatz von Webservices in der Datenbank .................. 709
24
Datenbankzugriff mit ADO.NET ........................................... 733
Index ..................................................................................... 855
Inhalt
Vorwort ........................................................................................................
1
Installation und Aktualisierung ............................................... 25
1.1
1.2
1.3
1.4
2
Installationsvoraussetzungen ........................................................
1.1.1
Die verschiedenen Versionen des SQL Servers 2005 ......
1.1.2
Systemvoraussetzungen .................................................
Installation von SQL Server 2005 .................................................
Vorbereiten der Aktualisierung auf SQL Server 2005 ....................
1.3.1
Installation des Updateratgebers ...................................
1.3.2
Anwendung des Updateratgebers .................................
Durchführung der Aktualisierung auf SQL Server 2005 .................
25
25
27
28
42
43
46
55
Datenbankgrundlagen ............................................................. 59
2.1
2.2
2.3
2.4
3
23
Server und Client .........................................................................
Relationale Datenbanken .............................................................
2.2.1
Struktureller Aufbau von Tabellen .................................
2.2.2
Im Zusammenhang mit Tabellen gebräuchliche
Fachbegriffe ..................................................................
2.2.3
Schlüssel .......................................................................
2.2.4
Beziehungsarten ............................................................
Datenbankmanagementsystem ....................................................
Integritätsarten ............................................................................
59
60
63
65
66
75
78
81
Logischer Datenbankentwurf ................................................... 85
3.1
3.2
3.3
3.4
3.5
Grundlagen des Datenbankentwurfs ............................................
Normalisierungsregeln (Normalformen) .......................................
3.2.1
Erste Normalform ..........................................................
3.2.2
Zweite Normalform .......................................................
3.2.3
Dritte Normalform ........................................................
Normalisierung in der Praxis ........................................................
Denormalisierung ........................................................................
Entity/Relationship-Diagramme ...................................................
85
86
88
90
92
93
97
98
5
Inhalt
4
Die neue Oberfläche des SQL Servers ...................................... 101
4.1
4.2
4.3
4.4
4.5
4.6
5
101
103
111
121
121
128
131
134
134
137
141
142
145
147
Grundlegende Abfragetechniken ............................................. 151
5.1
5.2
5.3
5.4
6
Rückblick .....................................................................................
Das SQL Server Management Studio ............................................
4.2.1
Der Objekt-Explorer ......................................................
Das Bearbeiten von SQL-Anweisungen im Abfragefenster
des Management Studios .............................................................
4.3.1
Der SQL Abfrage-Editor ................................................
4.3.2
Der Ergebnisbereich ......................................................
4.3.3
Der Abfrage-Designer ...................................................
SQL Server-Dokumentation und Hilfen zur Programmierung ........
4.4.1
Die SQL Server Onlinedokumentation ...........................
4.4.2
Der Vorlagen-Explorer ..................................................
4.4.3
Die Skript-Generierung in SQL Server 2005 ...................
4.4.4
Die Verwendung von Lesezeichen .................................
Überblick über die SQL Server-Dienste ........................................
Das Dienstprogramm sqlcmd .......................................................
Einführung in SQL ........................................................................
SQL-Grundlagen .........................................................................
5.2.1
Formatierung ................................................................
5.2.2
Bezeichner ....................................................................
5.2.3
Systemdatentypen .........................................................
5.2.4
Informationen zu den Datentypen einer Tabelle ............
5.2.5
Verwendung und Kennzeichnung von Zahlen,
Zeichenketten und Datums-/Uhrzeitwerten ...................
5.2.6
Kommentare .................................................................
Grundlegende Operatoren ...........................................................
5.3.1
Arithmetische Operatoren .............................................
5.3.2
Zeichenkettenoperator ..................................................
5.3.3
Vergleichsoperatoren ....................................................
5.3.4
Logische Operatoren .....................................................
Einfache Abfragen ........................................................................
5.4.1
USE ...............................................................................
5.4.2
SELECT…FROM ............................................................
5.4.3
Berechnete Spalten .......................................................
5.4.4
DISTINCT ......................................................................
5.4.5
ORDER BY-Klausel ........................................................
5.4.6
WHERE-Klausel .............................................................
151
152
153
153
154
158
158
159
160
160
161
161
161
163
164
164
168
169
171
174
Inhalt
5.5
5.6
5.7
5.8
5.9
6
Auswahloperatoren .....................................................................
5.5.1
IS (NOT) NULL-Auswahloperator ..................................
5.5.2
BETWEEN-Auswahloperator .........................................
5.5.3
IN-Auswahloperator ......................................................
5.5.4
LIKE-Auswahloperator ..................................................
Aggregatfunktionen .....................................................................
Unterabfragen .............................................................................
Zusammenfassung, Gruppierung und Beschränkung von
Abfrageergebnissen .....................................................................
5.8.1
Verknüpfung mehrerer Abfrageergebnisse durch
UNION .........................................................................
5.8.2
Beschränkung des Abfrageergebnisses mit TOP .............
5.8.3
GROUP BY-Klausel .......................................................
Ausgaben mit PRINT und SELECT ................................................
179
179
181
182
183
186
189
193
193
194
197
201
Grundlagen der SQL-Programmierung .................................... 203
6.1
6.2
6.3
6.4
6.5
Das Stapeltrennzeichen GO .........................................................
(Lokale) Variablen ........................................................................
6.2.1
Variablendeklaration .....................................................
6.2.2
Wertezuweisung an eine Variable .................................
6.2.3
Gültigkeitsbereich von Variablen ...................................
6.2.4
Verwendung von Variablen ...........................................
6.2.5
Lokale und globale Variablen in SQL Server ...................
6.2.6
Wertezuweisung an Variablen durch Abfragen ..............
Ablaufsteuerung ..........................................................................
6.3.1
Blöcke ...........................................................................
6.3.2
IF…ELSE .......................................................................
6.3.3
IF EXISTS ......................................................................
6.3.4
WHILE-Schleife .............................................................
6.3.5
RETURN ........................................................................
6.3.6
GOTO ...........................................................................
6.3.7
WAITFOR .....................................................................
Fallunterscheidungen ...................................................................
6.4.1
Die CASE-Funktion .......................................................
6.4.2
Die ISNULL-Funktion ....................................................
Funktionen ..................................................................................
6.5.1
Konfigurationsfunktionen ..............................................
6.5.2
Datums-/Uhrzeitfunktionen ..........................................
6.5.3
Zeichenfolgenfunktionen ...............................................
6.5.4
Mathematische Funktionen ...........................................
203
205
205
206
207
208
208
209
212
212
213
215
217
220
220
221
222
222
228
229
229
230
233
236
7
Inhalt
6.6
6.7
6.8
7
7.2
242
243
243
246
246
250
252
255
255
257
259
262
Tabellen verknüpfen (JOIN-Anweisung) .......................................
7.1.1
Einbindung zweier Tabellen in die SELECT-Anweisung ..
7.1.2
Innere Verknüpfung (INNER JOIN) ................................
7.1.3
Äußere Verknüpfung (OUTER JOIN) ..............................
7.1.4
Mehrfache JOIN-Anweisungen ......................................
7.1.5
Kreuzverknüpfung (CROSS JOIN) ..................................
7.1.6
Umkehrung der Funktionsweise des INNER JOIN ..........
Abfragen unter Verwendung mehrerer Server ..............................
7.2.1
Vollgekennzeichnete (vollqualifizierte) Namen ..............
7.2.2
Einrichtung eines Verbindungsservers ...........................
265
265
267
270
271
272
273
275
275
276
Erstellen und Ändern von Datenbanken .................................. 277
8.1
8.2
8.3
8.4
8.5
8
237
237
241
241
Mehrtabellenabfragen ............................................................. 265
7.1
8
6.5.5
Funktionen zur Statusabfrage ........................................
6.5.6
Konvertierungsfunktionen .............................................
Dynamische SQL-Anweisungen ....................................................
6.6.1
Ausführung dynamischer Anweisungen mit EXECUTE ....
6.6.2
Ausführung dynamischer Anweisungen mit
sp_executesql ................................................................
Fehler in SQL Server und ihre Behandlung ...................................
6.7.1 Struktur von Fehlermeldungen in SQL Server 2005 .........
Fehlerbehandlung ........................................................................
6.8.1
Fehlerbehandlung mit TRY und CATCH .........................
6.8.2
Funktionen zur Fehlerbehandlung .................................
6.8.3
Gegenüberstellung von TRY…CATCH und
@@ERROR ..................................................................
6.8.4
Abbruch verursachende Fehler ......................................
6.8.5
Erstellung benutzerdefinierter Fehlermeldungen ...........
6.8.6
Programmgesteuerte Fehlerauslösung ...........................
6.8.7
Fehlerauslösung unter Verwendung von Parametern .....
6.8.8
Löschen von benutzerdefinierten Fehlermeldungen .......
Erstellen einer einfachen Datenbank ............................................
Einfluss der model-Datenbank auf das Erstellen neuer
Datenbanken ...............................................................................
Löschen von Datenbanken ...........................................................
Erstellen einer Datenbank mit mehreren Dateien .........................
Nachträgliche Änderungen an Datenbankdateien ........................
8.5.1
Dateien hinzufügen .......................................................
277
285
286
286
289
289
Inhalt
8.6
8.7
8.8
8.9
8.10
9
8.5.2
Dateieigenschaften ändern ............................................
8.5.3
Dateien löschen ............................................................
Erstellen einer Datenbank mit mehreren Dateigruppen ................
Datenbanken verkleinern .............................................................
Datenbankdateien verkleinern .....................................................
Gespeicherte Systemprozeduren (stored procedures) zur
Datenbankverwaltung ..................................................................
RAID-Systeme .............................................................................
8.10.1 RAID 0 ..........................................................................
8.10.2
RAID 1 .........................................................................
8.10.3
RAID 3 .........................................................................
8.10.4
RAID 5 .........................................................................
291
292
292
295
297
298
298
299
300
301
302
Erstellen von Tabellen .............................................................. 305
9.1
9.2
9.3
9.4
9.5
9.6
9.7
9.8
Die grundlegende Syntax zur Tabellenerstellung ..........................
9.1.1
Definition einer Identitätsspalte ....................................
9.1.2
Bestimmung des physischen Speicherorts ......................
Tabellen ändern ...........................................................................
9.2.1
Spalten hinzufügen (ADD) .............................................
9.2.2
Spalten ändern (ALTER COLUMN) ...............................
9.2.3
Spalten löschen (DROP COLUMN) ................................
Löschen von Tabellen ..................................................................
Implementierung der Datenintegrität ...........................................
9.4.1
Die Einschränkungsarten im Überblick ..........................
9.4.2
Definition von Einschränkungen ....................................
9.4.3
Eigenschaften von Constraints .......................................
9.4.4
Lösch- und Änderungsweitergabe .................................
Anwendungsbeispiel zu Einschränkungen ....................................
Nachträgliche Definition von Einschränkungen ............................
Verwaltung von Einschränkungen ................................................
9.7.1
Deaktivierung und Aktivierung von Einschränkungen ....
9.7.2
Löschen einer Einschränkung ........................................
Temporäre Tabellen .....................................................................
9.8.1
Lokale temporäre Tabellen ............................................
9.8.2
Globale temporäre Tabellen ..........................................
305
307
308
309
309
310
311
311
312
312
313
314
318
319
321
322
323
323
324
324
325
10 Daten verwalten ....................................................................... 327
10.1
Grundlegende Befehle zur Datensatzmanipulation ....................... 327
10.1.1 Einfügen von Datensätzen mit INSERT .......................... 327
9
10.2
10.3
10.1.2 Daten aktualisieren mit UPDATE ...................................
10.1.3 Löschen von Daten mit DELETE ....................................
Kombinierte Auswahl-/Einfügeanweisungen ................................
10.2.1 INSERT…SELECT ...........................................................
10.2.2 SELECT…INTO ..............................................................
Massenkopierprogramme ............................................................
10.3.1 BULK INSERT ................................................................
10.3.2 bcp ...............................................................................
332
335
336
336
337
338
338
339
11 Benutzerverwaltung und Schemata ......................................... 341
11.1
11.2
11.3
11.4
11.5
11.6
11.7
Authentifizierung am Server .........................................................
11.1.1 Einrichten eines Logins mit WindowsAuthentifizierung ..........................................................
11.1.2 Einrichten eines Logins mit SQL ServerAuthentifizierung ..........................................................
Datenbankzugriff erteilen .............................................................
Zusammenfassung von Benutzern zu Rollen .................................
11.3.1 Serverrollen ..................................................................
11.3.2 Feste Datenbankrollen ..................................................
11.3.3 Einen Benutzer zu einer Rolle hinzufügen ......................
Rechtevergabe an Benutzer und Rollen ........................................
11.4.1 Objektberechtigungen ..................................................
11.4.2 Anweisungsberechtigungen ...........................................
11.4.3 SQL-Anweisungen zur Rechtevergabe ...........................
Deaktivierung und Aktivierung von Logins und
Datenbankbenutzern ...................................................................
Vordefinierte Konten auf Server- und Datenbankebene ...............
11.6.1 Das Login system administrator (sa) ..............................
11.6.2 Die Gruppe der lokalen Administratoren .......................
11.6.3 Der Datenbankbenutzer guest .......................................
Schemata in SQL Server 2005 ......................................................
11.7.1 Objektverwaltung bis SQL Server 2000 .........................
11.7.2 Objektverwaltung in SQL Server 2005 ...........................
11.7.3 Erstellen eines Schemas .................................................
342
343
344
346
349
350
351
352
353
353
353
356
360
362
362
363
364
366
366
367
368
12 Sichten ..................................................................................... 371
12.1
12.2
Einsatz von Sichten ...................................................................... 372
Verwalten von Sichten ................................................................. 374
12.2.1 Erstellen einer Sicht ......................................................... 374
Inhalt
12.3
12.4
12.2.2 Ändern einer Sicht ........................................................
12.2.3 Löschen einer Sicht .......................................................
Datenmanipulationsanweisungen auf eine Sicht ...........................
12.3.1 DML-Anweisungen auf eine Sicht ohne WHEREKlausel ..........................................................................
12.3.2 DML-Anweisungen auf eine Sicht mit WHEREKlausel ..........................................................................
Systemsichten des SQL Servers ....................................................
12.4.1 Informationsschemasichten ...........................................
12.4.2 Systemsichten im Schema sys ........................................
376
376
377
377
378
382
382
383
13 Programmierung von gespeicherten Prozeduren .................... 385
13.1
13.2
13.3
Überblick über die Verwendung von gespeicherten
Prozeduren in SQL Server ............................................................
Erstellung und Aufruf von gespeicherten Prozeduren ...................
13.2.1 Grundlegende Syntax zu Erstellung einer
gespeicherten Prozedur .................................................
13.2.2 Verwendung von Eingabeparametern ............................
13.2.3 Die verschiedenen Arten der Parameterübergabe ..........
13.2.4 Verweisbezogene Übergabe ..........................................
13.2.5 Verwendung von Ausgabeparametern ...........................
13.2.6 Verwendung eines Rückgabestatuscodes .......................
Optionen von gespeicherten Prozeduren .....................................
13.3.1 ENCRYPTION ................................................................
13.3.2 RECOMPILE ..................................................................
13.3.3 EXECUTE AS .................................................................
385
389
389
391
394
396
398
402
407
407
409
411
14 Programmierung von benutzerdefinierten Funktionen ........... 413
14.1
14.2
14.3
14.4
14.5
14.6
Überblick über benutzerdefinierte Funktionen .............................
Skalare Funktionen (Skalarwertfunktionen) ..................................
Inlinefunktionen (Tabellenwertfunktionen) ..................................
Tabellenwertfunktion mit mehreren Anweisungen .......................
Ändern und Löschen von benutzerdefinierten
Funktionen ..................................................................................
14.5.1 Ändern einer benutzerdefinierten Funktion ...................
14.5.2 Löschen einer benutzerdefinierten Funktion ..................
Verwendung des Datentyps TABLE als lokale Variable .................
14.6.1 Verwendung von Einschränkungen ................................
413
414
418
422
424
424
424
425
427
11
Inhalt
15 Programmierung und Einsatz von Triggern ............................. 429
15.1
15.2
DML-Trigger ................................................................................
15.1.1 Programmierung von DML-Triggern ..............................
DDL-Trigger .................................................................................
15.2.1 DDL-Trigger mit Serverbereich ......................................
15.2.2 DDL-Trigger mit Datenbankbereich ...............................
429
431
451
451
453
16 Erstellung und Einsatz eines Cursors ....................................... 457
16.1
16.2
16.3
16.4
16.5
16.6
16.7
Funktionsweise eines Cursors .......................................................
Erstellung eines Cursors ...............................................................
Öffnen eines Cursors ....................................................................
Das Abrufen von Datensätzen aus einem Cursor ..........................
16.4.1 Aufruf einer FETCH-Anweisung ohne Verwendung
von Variablen ................................................................
16.4.2 Aufruf einer FETCH-Anweisung unter Verwendung
von Variablen ................................................................
16.4.3 Die Verwendung von Positionsangaben zum
Abruf von Daten aus einem Cursor 463
Schließen und Löschen eines Cursors ...........................................
Schleifenprogrammierung zum automatischen
Durchlaufen eines Cursors ...........................................................
Daten in der Cursorauswahl aktualisieren und löschen .................
16.7.1 Aktualisieren .................................................................
16.7.2 Löschen ........................................................................
457
459
461
462
462
463
471
472
477
477
477
17 Indizes ...................................................................................... 479
17.1
17.2
17.3
17.4
17.5
12
Der nicht gruppierte Index auf einem Heap .................................
17.1.1 Vorgehensweise beim Durchlaufen eines Index .............
Der gruppierte Index ...................................................................
Der nicht gruppierte Index auf einem gruppierten Index ..............
Erstellung von Indizes ..................................................................
17.4.1 Manuelle Erstellung eines Index ......................................
17.4.2 Automatische Erstellung von Indizes .............................
Verwaltung von Indizes ...............................................................
17.5.1 Fragmentierung ...............................................................
17.5.2 Neuerstellung von Indizes .............................................
17.5.3 Löschen eines Index ......................................................
480
483
484
487
490
490
493
494
494
497
497
Inhalt
17.6
17.7
Statistiken ....................................................................................
17.6.1 Löschen einer Statistik ..................................................
17.6.2 Aktualisieren einer Statistik ...........................................
17.6.3 Informationen zu Statistiken abrufen .............................
Planung des Einsatzes von Indizes ................................................
17.7.1 Verwendung des DatenbankmodulOptimierungsratgebers ..................................................
498
502
502
502
503
505
18 Transaktionen ........................................................................... 513
18.1
18.2
18.3
18.4
18.5
18.6
18.7
18.8
Einführung in Transaktionen ........................................................
ACID ...........................................................................................
Interne Transaktionsverarbeitung .................................................
Verhalten bei Systemfehlern ........................................................
Programmierung expliziter Transaktionen ....................................
Implizite Transaktionen ................................................................
Wiederherstellung beim Systemstart (Recovery) ...........................
Sperren ........................................................................................
18.8.1 Sperrebenen .................................................................
18.8.2 Gemeinsame Sperren (shared locks) ..............................
18.8.3 Exklusive Sperren (exclusive locks) ................................
18.9 Isolationsstufen auf Verbindungsebene ........................................
18.9.1 READ UNCOMMITTED .................................................
18.9.2 READ COMMITTED ......................................................
18.9.3 REPEATABLE READ .......................................................
18.9.4 SERIALIZABLE ...............................................................
18.9.5 Zusammenfassung der Eigenschaften von Sperrstufen ...
18.9.6 Information über die Sperrstufe einer Verbindung .........
18.9.7 Setzen eines Timeout-Wertes ........................................
18.10 Sperrhinweise auf Tabellenebene .................................................
18.11 Informationen zu Sperren und Verbindungen ...............................
18.12 Deadlocks ....................................................................................
18.12.1 Vermeidung von Deadlocks ...........................................
18.12.2 Beispiel zur Erzeugung eines Deadlocks .........................
513
516
518
520
521
525
527
529
530
530
531
532
533
535
536
538
540
540
540
541
542
547
549
549
19 Der SQL Server als Laufzeitumgebung für .NET ...................... 551
19.1
Die Programmiermodelle im Vergleich .........................................
19.1.1 T-SQL ...........................................................................
19.1.2 Erweiterte gespeicherte Prozeduren ..............................
19.1.3 Einbindung von COM-Objekten ....................................
551
551
552
553
13
Inhalt
19.2
19.3
19.4
19.5
19.1.4 Einsatz von Managed Code ...........................................
Die CLR-Integration im Detail ......................................................
19.2.1 CLR-Hosting ..................................................................
19.2.2 Thread- und Speichermanagement ................................
19.2.3 I/O-Zugriffe ...................................................................
19.2.4 Assemblies Loading .......................................................
19.2.5 Application Domain Management .................................
Der Hosting Layer .......................................................................
Verwaltung von Assemblies .........................................................
Sicherheitsstufen .........................................................................
553
555
556
556
557
557
558
559
562
563
20 .NET-Programmierung ............................................................. 565
20.1
20.2
20.3
20.4
14
CLR-Unterstützung aktivieren ......................................................
20.1.1 CLR-Unterstützung per Skript aktivieren ........................
CLR-Prozeduren und Funktionen .................................................
20.2.1 CLR vs. T-SQL ...............................................................
20.2.2 Prozeduren vs. Funktionen ............................................
20.2.3 Veröffentlichung von Methoden ...................................
20.2.4 Implementierungsregeln ...............................................
20.2.5 Parameter und Rückgabewerte ......................................
20.2.6 Sicherheitsaspekte ........................................................
Gespeicherte Prozeduren .............................................................
20.3.1 Eine gespeicherte Prozedur mit Visual Studio
erstellen ........................................................................
20.3.2 Das SqlProcedure-Attribut ............................................
20.3.3 Parameter und Rückgabe ..............................................
20.3.4 Temporäre Prozeduren ..................................................
20.3.5 Assembly bereitstellen ..................................................
20.3.6 Assembly ohne Visual Studio kompilieren .....................
20.3.7 Installation mit sqlcmd durchführen ..............................
20.3.8 Prozeduren mit Visual Studio debuggen ........................
Benutzerdefinierte Funktionen .....................................................
20.4.1 Einschränkungen ...........................................................
20.4.2 Das SqlFunction-Attribut ..............................................
20.4.3 Funktionen bereitstellen ...............................................
20.4.4 Skalare Funktionen ........................................................
20.4.5 Eine Skalarfunktion erstellen .........................................
20.4.6 Tabellenwertige Funktionen ..........................................
565
567
567
567
567
568
569
570
571
572
572
575
576
577
577
577
578
579
580
580
581
581
582
583
584
Inhalt
20.4.7 Unterschiede zwischen T-SQL- und CLR-Funktionen .....
20.4.8 Eine tabellenwertige Funktion erstellen .........................
20.5 Serverseitiger Datenzugriff mit ADO.NET .....................................
20.5.1 Der Kontext ..................................................................
20.5.2 Verbindung zur Datenbank herstellen ...........................
20.6 Pipes ...........................................................................................
20.6.1 Die Send-Methode .......................................................
20.6.2 Die ExecuteAndSend()-Methode ...................................
20.6.3 Ausgabestrom steuern ...................................................
20.7 Impersonalisierung ......................................................................
20.8 Benutzerdefinierte Typen .............................................................
20.8.1 Das SqlUserDefinedType-Attribut .................................
20.8.2 Einen benutzerdefinierten Datentyp erstellen ................
20.8.3 Das INullable-Interface .................................................
20.8.4 Die ToString()-Methode ................................................
20.8.5 Die Parse()-Methode .....................................................
20.8.6 Erstellung des CalendarWeek-Datentyps .......................
20.8.7 Den CalendarWeek-Typ installieren ..............................
20.8.8 Den CalendarWeek-Typ testen ......................................
20.8.9 Validierungen ...............................................................
20.8.10 Methoden implementieren ...........................................
20.8.11 Serialisierung ................................................................
20.8.12 Typen als Klassen abbilden ............................................
20.8.13 Zugriff vom Client .........................................................
20.9 Benutzerdefinierte Aggregate .......................................................
20.9.1 Das SqlUserDefinedAggregate-Attribut .........................
20.9.2 Die Init-Methode ..........................................................
20.9.3 Die Accumulate-Methode .............................................
20.9.4 Die Merge-Methode .....................................................
20.9.5 Die Terminate-Methode ...............................................
20.9.6 Ein Beispielaggregat ......................................................
20.9.7 Das MaxRange-Aggregat implementieren ......................
20.9.8 Hinweise zur Implementierung ......................................
20.9.9 Aggregate installieren ...................................................
20.10 Benutzerdefinierte Trigger ...........................................................
20.10.1 Das SqlTrigger-Attribut .................................................
20.10.2 Die TriggerContext-Klasse .............................................
20.10.3 Trigger implementieren .................................................
20.10.4 Hinweise zur Implementierung ......................................
20.10.5 Trigger installieren ........................................................
584
585
588
589
589
590
590
593
594
597
602
603
604
604
605
605
605
608
608
609
610
612
616
617
618
618
619
620
620
620
620
622
625
625
626
626
627
628
632
632
15
Inhalt
20.11 Administration und Monitoring von CLR-Objekten ...................... 633
20.11.1 Informationen über die installierten Assemblies
ermitteln ....................................................................... 633
20.11.2 Laufzeitinformationen von CLR-Objekten ermitteln ....... 634
21 T-SQL: Neuerungen und Verbesserungen ................................ 637
21.1
21.2
21.3
21.4
21.5
21.6
21.7
21.8
21.9
Kompatibilität .............................................................................
21.1.1 Kompatibilität festlegen ................................................
21.1.2 Änderungen bei nicht ANSI-konformen Abfragen ..........
CROSS APPLY und OUTER APPLY ...............................................
Kreuztabellen mit PIVOT erstellen ...............................................
21.3.1 Entscheidungstabellen mit PIVOT erstellen ...................
21.3.2 Kreuztabellen in flache Listen transformieren ................
Common Table Expressions ..........................................................
21.4.1 Verarbeitung von hierarchischen Daten .........................
21.4.2 Maximale Rekursionsstufe einstellen .............................
Fehlerbehandlung ........................................................................
21.5.1 Informationen über den Fehler ermitteln .......................
21.5.2 Eigene Fehler auslösen ..................................................
21.5.3 Verschachtelte Fehlerbehandlung ..................................
Ranking- und Windowing-Funktionen .........................................
21.6.1 Ergebnisse mit RANK() gewichten .................................
21.6.2 Ranking ohne Lücken mit DENSE_RANK() .....................
21.6.3 Gruppierte Ranglisten mit Windowing ..........................
21.6.4 Zeilen mit ROW_NUMBER() nummerieren ....................
21.6.5 Paging mit ROW_NUMBER() .........................................
21.6.6 Daten mit NTILE() partitionieren ...................................
Die OUTPUT-Klausel ...................................................................
21.7.1 Einschränkungen ...........................................................
Die TABLESAMPLE-Klausel ..........................................................
21.8.1 Einschränkungen ...........................................................
EXCEPT- und INTERSECT-Statement ............................................
637
637
638
639
641
645
647
648
653
656
657
658
661
662
663
664
665
666
667
668
669
671
672
673
674
674
22 Einsatz von XML in der Datenbank ......................................... 677
22.1
22.2
22.3
16
Warum XML? ..............................................................................
XML-Fähigkeiten des SQL Server 2005 ........................................
Der XML-Datentyp ......................................................................
22.3.1 Vor- und Nachteile der XML-Datenspeicherung ............
22.3.2 XML-Felder anlegen ......................................................
678
678
679
679
681
Inhalt
22.4
22.5
22.6
22.3.3 XML-Felder mit einem Schema verknüpfen ...................
Auf gespeicherte XML-Daten zugreifen ........................................
22.4.1 XQuery als Abfragesprache ..............................................
22.4.2 Die Methoden des XML-Datentyps ...............................
22.4.3 Indizierung von XML-Feldern ........................................
XML-Daten aufbereiten ...............................................................
22.5.1 Einfluss auf die Transformation nehmen ........................
XML-Daten in einem relationalen Modell speichern ....................
22.6.1 Ein XML-Dokument in eine Tabelle importieren ............
683
685
685
686
692
695
699
705
706
23 Der Einsatz von Webservices in der Datenbank ...................... 709
23.1
23.2
23.3
23.4
23.5
23.6
23.7
23.8
23.9
Warum Webservices? ..................................................................
Den SQL Server als Webservice-Backend betreiben ......................
Endpoints ....................................................................................
Einen Endpoint erstellen ..............................................................
23.4.1 Die Status eines Endpoints ............................................
23.4.2 Adresse des Endpoints bestimmen ................................
23.4.3 Ports konfigurieren ........................................................
23.4.4 Methode definieren ......................................................
23.4.5 Sicherheitskonfiguration ................................................
23.4.6 Authentifizierungstyp festlegen .....................................
23.4.7 Authentifizierungsverfahren festlegen ............................
23.4.8 Berechtigungsverwaltung ..............................................
23.4.9 HTTP-Kompression aktivieren .......................................
WSDL ermitteln ...........................................................................
23.5.1 In die WSDL-Generierung eingreifen .............................
23.5.2 WSDL vom Client abrufen .............................................
Zugriff vom Client ........................................................................
Session- und State-Management ..................................................
23.7.1 Sessions aktivieren ........................................................
23.7.2 Session-Steuerung durch den Client ..............................
Batch-Abfragen ............................................................................
Endpoints verwalten ....................................................................
710
710
712
713
714
715
715
715
717
717
718
721
721
721
721
722
722
725
727
727
729
731
24 Datenbankzugriff mit ADO.NET .............................................. 733
24.1
Allgemeines .................................................................................
24.1.1 Installation von Visual C# 2005 Express Edition ............
24.1.2 Projekte anlegen und speichern ....................................
24.1.3 Die Beispieldatenbank ..................................................
733
735
735
738
17
Inhalt
24.2
24.3
24.4
24.5
24.6
24.7
24.8
18
Am Anfang steht die Wahl des Daten-Providers ...........................
Die Verbindung zu einer Datenquelle herstellen ..........................
24.3.1 Der Inhalt der Verbindungszeichenfolge ........................
24.3.2 Die Authentifizierung ....................................................
24.3.3 Das Öffnen einer Verbindung ........................................
24.3.4 Schließen einer Verbindung ..........................................
24.3.5 Die Dauer des Verbindungsaufbaus ...............................
24.3.6 Eigenschaften eines »SqlConnection«-Objekts ...............
24.3.7 Die Ereignisse eines »Connection«-Objekts ...................
24.3.8 Unterstützung bei Projekten mit grafischer
Benutzeroberfläche .......................................................
Das »Command«-Objekt ..............................................................
24.4.1 Erzeugen eines »Command«-Objekts ...............................
24.4.2 Ausführen des »Command«-Objekts ..............................
24.4.3 Aktionsabfragen mit »ExecuteNonQuery« absetzen .......
24.4.4 Auswahlabfragen mit »ExecuteReader« ..........................
24.4.5 Abfragen, die genau ein Ergebnis liefern .......................
24.4.6 Parametrisierte Abfragen ...............................................
24.4.7 Die Unterstützung durch Visual Studio 2005 .................
Der »DataAdapter« als Bindeglied zwischen Datenbank
und verbindungslosen Objekten ..................................................
24.5.1 Die Konstruktoren der Klasse »DataAdapter« ................
24.5.2 Den lokalen Datenspeicher mit der Methode
»Fill« füllen ....................................................................
24.5.3 Abrufen von Schemainformationen ...............................
24.5.4 Die Unterstützung von Visual Studio 2005 ....................
Das »DataSet«-Objekt ..................................................................
24.6.1 Allgemeines ....................................................................
24.6.2 Ein »DataSet«-Objekt erzeugen .....................................
24.6.3 Das »DataSet« füllen .....................................................
24.6.4 Tabellen- und Spaltenbezeichner zuordnen ...................
»DataTable«-Objekte ...................................................................
24.7.1 Die Zeilen und Spalten in einer »DataTable« ....................
24.7.2 Mit mehreren Tabellen arbeiten ....................................
24.7.3 Änderungen an einer »DataTable« vornehmen ..............
24.7.4 Datenausgabe in WinForms mit Visual Studio 2005 ......
Aktualisieren der Datenbank ........................................................
24.8.1 Aktualisieren mit dem »CommandBuilder«-Objekt ..........
24.8.2 Manuell gesteuerte Aktualisierungen ............................
24.8.3 Aktualisieren mit »ExecuteNonQuery« ...........................
738
740
742
743
744
746
746
747
748
749
751
751
751
752
754
757
757
761
762
764
765
771
778
781
781
781
782
782
789
789
792
798
805
815
815
818
820
Inhalt
24.8.4
24.8.5
24.8.6
24.8.7
Manuelles Aktualisieren mit dem DataAdapter .............
Den zu aktualisierenden Datensatz in der Datenbank suchen ..................................................................
Den Benutzer über die fehlgeschlagenen Aktualisierungen informieren .................................................
Die konfliktverursachenden Datenzeilen bei der
Datenbank abfragen ......................................................
831
837
841
846
Index ............................................................................................................ 855
19
In diesem Kapitel werden die für das Verständnis von Datenbanksystemen notwendigen, grundlegenden Begriffe erläutert. Sie erhalten außerdem einen ersten Einblick in die Strukturen heutiger Datenbanksysteme.
2
Datenbankgrundlagen
2.1
Server und Client
Bevor im nächsten Abschnitt näher auf die eigentlichen Datenbanksysteme eingegangen wird, sollen noch zwei Begriffe geklärt werden, die damit in engem
Zusammenhang stehen und immer wieder – gerade bei Anwendern, die zum ersten Mal mit einem solchen Datenbanksystem arbeiten – für Irritationen sorgen:
die Begriffe Server und Client. Diese Irritationen rühren häufig daher, dass beide
Begriffe sowohl für eine Hardware- als auch für eine Softwarekomponente verwendet werden. Dies soll am Beispiel eines Servers näher betrachtet werden, für
einen Client gelten ähnliche Überlegungen.
Wenn von einem Server (engl.: Diener) die Rede ist, ist meistens ein in einem
Netzwerk befindlicher Rechner gemeint, der anderen Rechnern Funktionen,
Speicherplatz, Programme – im weitesten Sinne also Ressourcen – zur Verfügung
stellt. Als einen Server bezeichnet man aber auch eine Software (wie den SQL Server), die anderen Programmen über eine Schnittstelle Funktionen zur Verfügung
stellt, im Falle des SQL Servers also die Datenbankfunktionalität.
Dabei ist es unerheblich, ob das zugreifende Programm, das in diesem Fall als
Client (engl.: Auftraggeber, Kunde, Klient) bezeichnet wird, auf einem anderen
Rechner innerhalb eines Netzwerks ausgeführt wird, über das Internet mit dem
Server verbunden ist oder auf demselben Rechner wie die Serversoftware läuft.
Letzteres wird bei Ihnen der Fall sein, wenn Sie die Installation des SQL Servers
auf Ihrem lokalen Computer vorgenommen haben. Sie greifen mit den von SQL
Server 2005 mitgelieferten Clientanwendungen auf das auf dem gleichen Rechner laufende Serverprogramm zu.
59
2
Datenbankgrundlagen
Ganz allgemein lässt sich sagen:
Ein Server stellt Ressourcen bereit, die von einem Client benutzt werden können.
Dabei ist es unerheblich, ob es sich um einen Hardware- oder Softwareserver beziehungsweise -client handelt.
In diesem Buch soll, wenn nicht anders angegeben, mit »Server« immer das
Datenbankprogramm, also SQL Server 2005, gemeint sein.
2.2
Relationale Datenbanken
Das Modell einer relationalen Datenbank wurde erstmals 1970 von Dr. Edgar
Frank Codd (1923–2003) in seinem Artikel »A Relational Model of Data for Large
Shared Data Banks« veröffentlicht.
Eine Kopie dieses Artikels finden Sie zum Beispiel unter der Internetadresse
http://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf.
Mit diesem Artikel wurde von Codd eine der tiefgreifendsten Veränderungen
in der Datenverarbeitung ausgelöst: der Übergang zu den relationalen Datenbanken.
Die ersten für Computer entwickelten Datenbanken unterschieden sich in ihrer
Struktur grundlegend von der Struktur heutiger Datenbanksysteme. Eine der ersten Lösungen, um Daten auf einem Computer zugänglich zu machen, beruhte auf
der sequenziellen Speicherung der Daten in Textdateien. In der weiteren Entwicklung wurde der Ansatz verfolgt, die Daten in einer hierarchischen Struktur
abzulegen. Abbildung 2.1 zeigt ein Beispiel für den Aufbau einer solchen Datenbank. Um einen Datensatz zu finden, musste eine Baumstruktur durchlaufen
werden, an deren Ende der gesuchte Datensatz stand.
Kontakte
privat
männlich
Abbildung 2.1
60
geschäftlich
weiblich
männlich
Prinzipieller Aufbau erster Datenbanklösungen
weiblich
Relationale Datenbanken
Codds Arbeit hingegen basiert auf einem wissenschaftlichen Ansatz, in dem er
die Verwaltung von Daten durch mathematische Methoden der Mengenlehre
beschreibt. Im Zusammenhang mit relationalen Datenbanken werden daher häufig die aus der Mengenlehre stammenden Fachbegriffe verwendet. Diese etwas
»akademisch« klingenden Begriffe sind sicherlich ein Grund dafür, dass bei vielen Leuten immer noch eine hohe Hemmschwelle vor der Beschäftigung mit
Datenbanken besteht. Einige dieser Fachbegriffe werden weiter unten erwähnt
und erklärt, da sie in anderen Publikationen verwendet werden. In diesem Buch
werden – soweit es möglich ist – allgemein verständliche Bezeichnungen verwendet. Für manche Fachbegriffe gibt es jedoch kein Synonym, so dass diese dann im
Buch Verwendung finden.
Was aber versteht man nun genau unter einer relationalen Datenbank?
Relationale Datenbanken arbeiten nach einem völlig anderen Prinzip als die oben
beschriebenen Ansätze. Das wesentlichste Merkmal einer relationalen Datenbank besteht darin, dass die Daten in zueinander in Beziehung stehenden Tabellen (den so genannten Relationen) abgelegt werden (Abbildung 2.2). Auf welche
Weise die Tabellen einer relationalen Datenbank zueinander in Beziehung
gesetzt werden, wird weiter unten in diesem Kapitel behandelt.
Abbildung 2.2
Schematischer Aufbau einer relationalen Datenbank
Die Aufteilung von Daten in zueinander in Beziehung stehende Tabellen ermöglicht eine sehr strukturierte Speicherung von Daten, da in eine Tabelle immer nur
Informationen über eine Art von Objekten abgelegt werden sollten, wobei es
sich bei diesen Objekten sowohl um reale Dinge wie zum Beispiel Personen oder
Fahrzeuge als auch um abstrakte Dinge wie beispielsweise Verleihvorgänge handeln kann.
Diese Art der Speicherung erfüllt einen weiteren wesentlichen Zweck: die Vermeidung von Redundanz. Dieser Begriff bezeichnet im Kontext von Datenbanken die mehrfache Speicherung der gleichen Information. Redundanz bedeutet
nicht nur den unnötigen Verbrauch von Speicherplatz, sondern kann bei ihrem
Vorhandensein innerhalb einer Datenbank ernsthafte Probleme verursachen,
wie das folgende Beispiel aus der Praxis deutlich machen soll.
61
2.2
2
Datenbankgrundlagen
In vielen Firmen werden die Daten der Mitarbeiter an mehreren Stellen erfasst.
Die Buchhaltung verfügt über ein eigenes Programm zur Gehaltsabrechnung mit
den Daten der Mitarbeiter, die Abteilungsleiter haben die Daten der Mitarbeiter
ihrer Abteilung ebenfalls erfasst, und der Betriebsrat pflegt eine eigene ExcelTabelle dieser Daten. Bereits bei dieser Speicherung von Daten an nur drei verschiedenen Stellen stellt man bei einer Überprüfung schnell fest, dass die Daten in
den seltensten Fällen untereinander abgeglichen sind: Die neue Adresse eines Mitarbeiters wurde nach seinem Umzug nicht in allen drei Datenbeständen geändert,
schon lange ausgeschiedene Mitarbeiter wurden nicht gelöscht und so weiter.
Übertragen auf eine Datenbank würde dieses Beispiel der Tatsache entsprechen,
dass die Mitarbeiterinformationen dreimal innerhalb einer Datenbank abgespeichert worden wären, beispielsweise in verschiedenen Tabellen. Als Konsequenz
daraus würde sich die Tatsache ergeben, dass je nachdem, welche Tabelle zur
Abfrage herangezogen wird, unterschiedliche Informationen zu einem Mitarbeiter zurückgeliefert würden, eben in Abhängigkeit davon, ob ein aktueller oder
veralteter Datensatz als Quelle der Information gedient hat. Mit anderen Worten:
Die Korrektheit und Verlässlichkeit der Daten, die auch als Datenintegrität
bezeichnet wird, wäre nicht mehr gewährleistet. Eine Datenbank, die nur zufällig
korrekte Informationen ausgibt, ist aber praktisch wertlos.
Natürlich ist mit der Datenintegrität nicht die absolute Fehlerfreiheit von Daten
gemeint: Zwar können Daten während der Eingabe von modernen Datenbanksystemen auf bestimmte Fehler überprüft werden, einen Schutz vor Schreibfehlern bei der Eingabe zum Beispiel eines Vor- oder Nachnamens kann auch das
beste Datenbanksystem nicht bieten.
Anhand des obigen Beispiels kann abgelesen werden, welche Bedeutung die Vermeidung von Redundanz in Bezug auf die Datenintegrität hat: Wird Redundanz
vermieden, also eine Information immer nur einmal an einer Stelle innerhalb
der Datenbank gespeichert, entspricht diese Information immer dem letzten,
aktuellsten Stand. Die Vermeidung von Redundanz sollte daher bei einem Datenbankentwurf – wie er in Kapitel 3, Logischer Datenbankentwurf, beschrieben
wird – immer einen wichtigen Gesichtspunkt darstellen. Die Datenbanktheorie
stellt Methoden und Hilfsmittel zur Verfügung, um dieses Ziele zu erreichen.
Nachdem der Zusammenhang zwischen dem Vorhandensein von Redundanz
und der möglichen Auswirkung auf die Datenintegrität beschrieben wurde, soll
nun noch eine –in der praktischen Arbeit mit Datenbanken häufig gestellte –
Frage beantwortet werden: Wann genau liegt Redundanz innerhalb einer Datenbank vor? Gerade bei der ersten Beschäftigung mit Datenbanken sorgt dieser
Begriff immer wieder für Irritationen. Stellt schon die mehrfache Nennung eines
Eintrags – des Wohnorts, der Steuerklasse und so weiter – bei den verschiedenen
62
Relationale Datenbanken
Datensätzen einer Tabelle schon Redundanz dar oder nicht? Die folgende Anmerkung soll diesen Aspekt erläutern:
Der Begriff Redundanz wird häufig falsch interpretiert. Ist zum Beispiel in einer
Tabelle, in der die Daten von Mitarbeitern erfasst werden, eine Spalte vorhanden, in
der die Abteilung des Angestellten (Lager, Versand, Buchhaltung etc.) erfasst wird, so
stellt das mehrfache Vorkommen dieser Begriffe in der Spalte keine Redundanz dar!
Redundanz würde in diesem Fall erst dann entstehen, wenn an mehreren Stellen
innerhalb der Datenbank die Information erfasst würde, dass ein bestimmter Angestellter seiner jeweiligen Abteilung zuzuordnen ist.
Auch wenn die Vermeidung von Redundanz ein Hauptmerkmal des Entwurfs
von relationalen Datenbanken darstellt, so kann das Auftreten von Redundanzen
nicht immer vermieden werden. Innerhalb einer Firma könnten zum Beispiel
zwei oder mehrere Datenbanken Verwendung finden, deren Datenbestand sich
teilweise überschneidet.
In diesem Fall muss sichergestellt sein, dass Änderungen von Datensätzen in der
einen Datenbank auch auf die anderen, redundanten Datensätze anderer Datenbanken übertragen werden. Man bezeichnet diesen Sachverhalt als die Wahrung
der Datenkonsistenz.
2.2.1
Struktureller Aufbau von Tabellen
Da Tabellen die elementaren Bestandteile von relationalen Datenbank darstellen,
sollen anhand von Abbildung 2.3 einige mit Tabellen in Zusammenhang stehende Begriffe erklärt werden.
Dargestellt ist der Auszug einer Tabelle aus der im SQL Server 2005 enthaltenen
Beispieldatenbank AdventureWorks. Diese Beispieldatenbank bildet die Vorgänge innerhalb einer Firma ab, die sich mit der Herstellung von Fahrrädern
beschäftigt. Die abgebildete Tabelle enthält Informationen über Produkte, die
von dem Fahrradhersteller eingekauft beziehungsweise verkauft werden.
Die AdventureWorks-Datenbank ist weitaus umfangreicher und komplexer als die in
früheren Versionen des SQL Servers mitgelieferten Beispieldatenbanken pubs und
Northwind, die in der neuen Version des Servers nicht mehr enthalten sind. Allerdings erschließt sich – gerade für einen nicht aus dem angelsächsischen Sprachraum
stammenden Benutzer – nicht unbedingt sofort, welche Art von Information innerhalb der Tabellen abgespeichert ist. Unter der Internetadresse http://msdn2.microsoft.com/de-de/ms124659.aspx können Sie detaillierte Informationen zu den Tabellen in der neuen Beispieldatenbank sowie Vergleiche zu den ehemaligen Beispieldatenbanken erhalten.
63
2.2
Index
- (Subtraktion) 160
!< (Vergleichsoperator) 161
!= (Vergleichsoperator) 161
!> (Vergleichsoperator) 161
% (Modulo-Division) 160
% (Platzhalter) 183
(local) 108
* (Multiplikation) 160
* (Platzhalter) 166
+ (Addition) 160
+ (Zeichenverkettung) 161
.NET 2.0 556
.NET Assembly Loader 561
.NET Framework 2.0 31
.NET Framework 2.0 – Sprachpaket 31
.NET-Assemblies 555
.NET-CLR
1.0 556
1.1 556
2.0 556
.NET-Runtime 555
.NET-Speichermanagement 556
.NET-Thread-Pool 557
.NET-Typen 602
/ (Division) 160
; NULL 179
< (Vergleichsoperator) 161
<= (Vergleichsoperator) 161
<> (Vergleichsoperator) 161
= (Vergleichsoperator) 161
> (Vergleichsoperator) 161
>= (Vergleichsoperator) 161
@@CONNECTIONS 229
@@CURSOR_ROWS 472
@@ERROR 237, 246, 252
@@ERROR-Variable 657
@@FETCH_STATUS 472
@@IDENTITY-Funktion 449
@@LANGUAGE 229
@@MAX_CONNECTIONS 229
@@OPTIONS 229
@@ROWCOUNT 237
@@SERVERNAME 229
@@VERSION 229
[] (Klammeroperator) 184
^ (Umkehrungs-Symbol) 185
_ (Platzhalter) 184
A
Abfrage
Abbrechen 126
an Datenbankmodul 121
Analysieren 125
auf verschiedene Server 275
Ausführen 125
Duplikate eleminieren 169
Ergebnisse einschränken 174
Ergebnisse sortieren 171
neue 121
Unterabfrage 189
Abfrageausführung 128
abgebrochene 130
erfolgreiche 128, 130
nicht erfolgreiche 130
Abfrageausführung (Optionen) 204
Abfrage-Designer 131
Abfrage-Editor 121
Abfrageergebnis 128
Abfrageergebnisse zusammenfassen 193
Abfrageerstellung, grafische 131
Abfragefenster 121
Abfragen, einfache 163
Abfrageoptimierer 388
Abhängigkeiten, innere 92
Ablaufsteuerung 212
BREAK 218
CONTINUE 219
GOTO 220
IF EXISTS 215
IF...ELSE 213
RETURN 220
WAITFOR 221
WHILE 217
Ablaufverfolgung 506
ABS 237
ABSOLUTE n 464
Absolute Positionsangabe 468
AcceptChanges 827
Access 132, 276
855
Index
Accumulate-Methode 619
ACID 516
ADD 309
Addition 160
Administration und Monitoring von CLRObjekten 633
Administrator 80
ADO.NET 733
ADO.NET-Provider 709
AdventureWorks 34, 63, 115, 203, 510
Download 36
Installation 34
Neuinstallation 36
Product Tabelle 64
ProductVendor Tabelle 71
Skript 121
Vendor Tabelle 71
AdventureWorks 씮 Beispieldatenbank
AFTER-Trigger 432, 438, 444, 626
Aggregate 618
Aggregate installieren 625
Aggregatfunktionen 186
AVG 187
COUNT 188
MAX 187
MIN 187
SUM 187
Aktivitätsmonitor 543
Filtereinstellungen 545
Aktualisierungsweitergabe 335
Alias 643
Tabelle 266
Aliasname 167, 266
ALL SERVER-Option 627
AllowDBNull 774, 776
ALTER 451
ALTER ASSEMBLY 562
ALTER ASSEMBLY-Statement 562
UNCHECKED DATA-Option 563
VISIBILITY-Option 563
ALTER ASSEMBLY-Statement 씮
UNCHECKED DATA-Option
ALTER ASSEMBLY-Statement 씮
VISIBILITY-Option
ALTER COLUMN 310
ALTER DATABASE 289
ALTER FUNCTION 416, 424
ALTER LOGIN 348
856
ALTER LOGIN...WITH DEFAULT
DATABASE 348
ALTER PROCEDURE 403
ALTER TABLE...ADD 309
ALTER TABLE...ADD CONSTRAINT 321
ALTER TABLE...DROP COLUMN 311
ALTER TABLE...DROP CONSTRAINT 323
ALTER TABLE...NOCHECK CONSTRAINT 323
ALTER TABLE...WITH NOCHECK 322
ALTER TABLE…ALTER COLUMN 310
ALTER TRIGGER…ON 444
ALTER TYPE-Statement 608
ALTER USER 369
ALTER USER...WITH DEFAULT_SCHEMA
369
ALTER VIEW...AS 376
ALTER XML SCHEMA COLLECTION 684
American National Standards Institute
151
Analyse
der zu erfassenden Informationen 94
von Beziehungen 94
Analyse starten 510
Analysieren 125
Analysis Services 105
AND 162, 163
Ändern einer Sicht 376
Ändern und Löschen von benutzerdefinierten Funktionen 424
Änderungsweitergabe 318
Anmeldedialog 104
ANSI 151
ANSI SQL-92-Standard 618
ANSI-konforme Abfragen 638
Anweisungsberechtigungen 353
AppDomain 558
Application Domain 557, 558
Application Domain Management 558
Application Domain 씮 AppDomain
Arbeitsauslastung 505
ArgumentException-Klasse 608
ArgumentOutOfRangeException-Klasse
616
Aristoteles 161
Arithmetische Operatoren 160
Array 457
AS 167
ASCII 233, 234
Index
AS-Schlüsselwort 650
Assemblies
ALTER ASSEMBLY 562
CREATE ASSEMBLY 562
PERMISSION_SET 564
Sicherheitsstufen 563
Sourcecode 562
Verwaltung 562
Assemblies installieren 562
Assemblies Loading 557
Assemblies verwalten 562
Assembly 558
Assembly bereitstellen 577
Assembly kompilieren 568
Assembly Loader 561
Assembly mit sqlcmd bereitstellen 578
Assembly ohne Visual Studio kompilieren 577
Assembly Resolver 557
Assembly-Management 556
Assembly-Versionierung 562
atomar 88
Atomarität 516
Atomicity 516
Atribut
elementares 89
Attribut 66, 88
atomares 88
Attributwerte, Liste von 89
Auflösung einer m:n-Beziehung 95
Ausführen 125
Ausführung der Abfrage abbrechen 126
Ausführungskontext 559
Ausführungsplan 388, 584
Ausgaben mit PRINT und SELECT 201
Ausgabestrom steuern 594
Äußere Verknüpfung 270
Auswahloperatoren 179
BETWEEN 181
IN 182
LIKE 183
Auswertungsreihenfolge 160
Authentifizierung 104, 109, 342
gemischter Modus 39
SQL Server 39, 109, 342
Windows 109, 342
Windows-Authentifizierung 39
Authentifizierung 씮 Authentifizierungsmodus
Authentifizierungsmodus 38
AutoIncrement 774
AUTO-Modus 695
AVG 187
B
balanced tree 482
Bankleitzahl 70
Barcode 70
Basistabelle 372, 447
batch 203
Batchtrennzeichen 203
B-Baum 482
bcp 339
BEGIN 212
BEGIN TRANSACTION 522
BEGIN TRY 658
BeginEdit 799
Begrenzte Bezeichner 154
Beispieldatenbank 34
Northwind 36
pubs 36
Benutzedefinierte Fehler 씮 Fehler
Benutzer 347
Benutzerassemblies 559
Benutzerdefinierte Aggregate 554, 618
Benutzerdefinierte Aggregate installieren
625
Benutzerdefinierte Aggregate installieren
씮 Aggregate installieren
Benutzerdefinierte Datentyp
Erstellen 604
Benutzerdefinierte Datentypen 554
Zugriff vom Client 617
Benutzerdefinierte Fehler 255
Anzeige 257
Auslösung 257
Erstellung 255
Löschen 262
Nicht vordefinierter 258
Benutzerdefinierte Fehler in Landessprache 260
Benutzerdefinierte Funktion 413, 554,
580
Ändern 416, 424
Aufruf mit EXECUTE 416
Darstellung im Objekt-Explorer 415
Fehlerbehandlung 414
857
Index
Inline 418
Löschen 416, 424
Maximale Anzahl Eingabeparameter 413
Rückgabedatentyp 414
Skalarwert 414
Standardwerte 413
Tabellenwert 418
Tabellenwert mit mehreren Anweisungen
422
Übersicht 413
Benutzerdefinierte Funktion 씮 UDF
Benutzerdefinierte Funktion 씮 User definied Functions
Benutzerdefinierte Serialisierung 613
Benutzerdefinierte Trigger 554, 626
Benutzerdefinierte Trigger installieren
632
Benutzerdefinierte Trigger installieren 씮
Trigger installieren
Benutzerdefinierte Typen 602
Aktualisieren 612
Benutzerdefinierte Typen 씮 User Defined
Types
Benutzername 109
Benutzerverwaltung 341
Aktivierung 360
Aliasname 348
Datenbankzugriff erteilen 346
Deaktivierung 360
Eigenschaften eines Benutzers anzeigen
345
Guest 364
Login 342
SQL Server-Login einrichten 344
Standardschema zuweisen 369
Windows-Login einrichten 343
Zusammenfassung zu Rollen 349
Zuweisung einer Rolle 352
Zuweisung einer Standarddatenbank 348
Berechnete Spalten 168
Berechtigung
Entziehen 354
Gewähren 354
Verweigern 354
Berechtigungen 350
An Benutzer und Rollen vergeben 353
Anweisungs 353
erben 350
Objekt 353
858
Vergeben 356
Weitergeben 357
Berechtigungen 씮 Rechte
Berichtsdatei 126
Beständigkeit 516
BETWEEN 181
Bezeichner 153
begrenzte 154
reguläre 154
Bezeichner 씮 Name
Bezeichner 씮 SQL
Beziehung 75
1:1-Beziehung 75, 94
1:n-Beziehung 76, 95
m:n-Beziehung 77, 95
bigint 155
Bildlauffähiger Cursor 465
BINARY BASE64 700
BinaryReader-Klasse 614
BinaryWriter-Klasse 614
BindingContext 809
BindingNavigator 814
BindingSource 812
Bit 155
Block 212
BLZ 70
BOL 134
Bookmark 142
Books Online 134
BREAK 218
B-Tree 482
bulk copy 338
bulk copy program 339
BULK INSERT 338
BULK INSERT-Statement 609
bulkadmin 350
C
C++ 552, 553
Cache 518
Caches 555
CALLED ON NULL INPUT-Option 582
CancelEdit 799
CASCADE 319
case sensitive 153
CASE-Funktion 222
einfache 222
komplexe 225
Index
Wertezuweisung durch 227
CAST 239
CATCH 406
CATCH-Block 247, 599, 658
CHAR 233, 234
char(n) 155, 156
CHARINDEX 233, 235
CHECK 312, 316, 428, 431
CHECK CONSTRAINT 323
CHECK OPTION 379
CHECKPOINT 519, 527
Client 59, 79, 457
CLOSE 471
Close (Connection) 746
CLR 551
Betriebssystemoperationen 556
Hosting-API 558
Integration 551
Tasks 557
CLR 2.0 558
CLR enabled 567
CLR Execution Performance Counter 636
CLR vs. T-SQL 567
CLR-Datentypen 576
CLR-Funktionen 584
CLR-Hosting 556
CLR-Hosting 씮 Host
CLR-Integration 555
CLR-Objekte 568
CLR-Objekte administrieren 633
CLR-Objekte administrieren 씮 Administration und Monitoring von CLR-Objekten
CLR-Objekte, Laufzeitinformationen 634
CLR-Objekte, Laufzeitinformationen 씮
Laufzeitinformationen
CLR-Profiler 씮 Profiler
CLR-Sicherheitsstufen 563
CLR-Sicherheitsstufen 씮
EXTERNAL_ACCESS
CLR-Sicherheitsstufen 씮 SAFE
CLR-Sicherheitsstufen 씮 UNSAFE
CLR-Unterstützung aktivieren 565
CLR-Unterstützung per Skript aktivieren
567
CLR-Unterstützung per Skript aktivieren 씮
clr enabled
CLR-Unterstützung per Skript aktivieren 씮
RECONFIGURE
CLR-Unterstützung per Skript aktivieren 씮
sp_configure
CLUSTERED 490, 493
Codd, Dr. Edgar Frank 60
Code Access Security 560
Command 751
CommandText 761
COMMIT TRANSACTION 522
Common Language Runtime 551
Common Language Runtime 씮 CLR
Common Table Expressions 648
Common Table Expressions 씮 CTE
COM-Objekte 553
Einbindung 553
COM-Objekte 씮 C++
COMPUTE 199
COMPUTE BY 200
CONNECT 360
Connection 740
Connection (Eigenschaft) 751
ConnectionString 741
Consistency 516
Constraint 312, 450, 584, 777
contains() 688
Context 589
CONTINUE 219
ContinueUpdateOnError 842
Controller 299
CONVERT 239
COUNT 188
COUNT(*) 189
COUNT(DISTINCT) 188
CPU-Management 556
CREATE 451
CREATE ASSEMBLY 562
CREATE ASSEMBLY-Statement 562, 578
CREATE DATABASE 277
CREATE FUNCTION 414, 418, 422
CREATE FUNCTION-Statement 581, 585
CREATE INDEX...ON 490
CREATE LOGIN 343
CREATE LOGIN...FROM WINDOWS 343
CREATE LOGIN...WITH PASSWORD 344
CREATE PROCEDURE...AS 390
CREATE PROCEDURE-Statement 578
CREATE ROLE 352
CREATE SCHEMA 368
CREATE SCHEMA...AUTHORIZATION
368
859
Index
CREATE TABLE 305
CREATE TRIGGER...ON 432, 440
CREATE TRIGGER...ON ALL SERVER 451
CREATE TRIGGER...ON DATABASE 453
CREATE TRIGGER-Statement 632
CREATE TYPE-Statement 608
CREATE USER 347
CREATE USER...FOR LOGIN 347
CREATE VIEW...AS 374
CREATE VIEW...AS...WITH CHECK
OPTION 380
CREATE XML INDEX 692
CREATE XML INDEX 씮 XML
CREATE XML SCHEMA COLLECTION
683
CREATE_DATABASE 451
CROSS APPLY-Statement 639
CROSS JOIN 272
Crystal Reports 105
CTE 648
CurrencyManager 809
Cursor 457
Aktualisierungsoptionen 460
Automatisches Durchlaufen 472
Bildlauffähiger 460
Daten in der Auswahl aktualisieren 477
Daten in der Auswahl löschen 477
Datensätze abrufen 462
Dynamischer 460
-ende 469
erstellen 459
FETCH-Anweisung 462
Funktionen 472
Funktionsweise 457
Lese- 460
Löschen 471
Nichtsperr- 460
Öffnen 461
Positionsangabe 464
Schließen 471
Serverseitiger 458
Sperr- 460
Sperroptionen 460
Statischer 460
Struktur 461
Verwendung von Positionsangaben 463
Vorwärts- 460
Zugriffsoptionen 460
Customer (Bibliothek) 562
860
D
d (Platzhalter) 259
Data Control Language 152
Data Definition Language 152, 451
Data Manipulation Language 152, 429
Data Query Language 152
Data Transformation Services 50, 106
DataAccess-Parameter 581, 610
Database Consistency Checker 296
database owner 367
DataBindings 808
DataColumn 790
DataColumnCollection 790
DataColumnMapping 786
DataColumnMappingCollection 775, 786
DataGridView 806
Data-Mart 105
DataMember 812
DataReader 754
DataReader-Klasse 592
DataRecord-Klasse 589
DataRelation 777, 793
DataRelationCollection 794
DataRow 790
DataRowCollection 790, 801
DataRowState 801
DataRowVersion 791, 802
DataRowViewState 826
DataSet 766, 781
DataSource 812
DataTable 774, 788, 789
DataTableCollection 783
DataTableMapping 785, 786
DataTableMappingCollection 775, 784
Data-Warehouse 105
DATEADD 230, 232
DATEDIFF 230, 233
Datei öffnen 121
Dateigruppe 279, 292, 308
Datei-ID 481
Dateivergrößerung 281
Daten in der Cursorauswahl 477
Datenabfragesprache 152
DATENAME 231
Datenbank 112
Ändern 289
Auswahl durch USE 164
Benutzerdefiniert 112
Index
Dateien löschen 292
Erstellung 277
Erstellung mit mehreren Dateien 286
für die Arbeitsauslastungsanalyse 510
Grundlagen 59
Historische 60
Inhalt 115
Kopie 115
Löschen 286
Physische 80
Relationale 61
Standard 124
Struktur 115
System 112
Verkleinern 295
Verwaltung 79
Datenbankdateien 278
Eigenschaften ändern 291
Hinzufügen 289
Nachträgliche Änderung 289
Datenbankdateien verkleinern 297
Datenbankdiagramm 115
Ausdruck 118
Erstellung 115
Seitenumbrüche anzeigen 118
Speicherung 119
Tabelle entfernen 118
Tabelle hinzufügen 116, 118
Tabellen anordnen 117
Unterstützung installieren 116
verknüpfte Tabellen hinzufügen 119
Datenbankentwurf 85
Denormalisierung 97
Grundlagen 85
Normalisiert 86
Datenbankmanagementsystem 78
Hauptaufgabe 81
Struktur 79
Datenbankmodul 104, 107
Datenbankmodul-Abfrage 121
Datenbankmodul-Optimierungsratgeber
505
Datenbankobjekte, temporäre 114
Datenbankoptionen 499
Datenbankrollen
benutzerdefiniert 352
feste 351
Datenbanksicherung 114
Datenbanksnapshot 115
Datenbanktrigger 454
Datenbankzugriff erteilen 346
Datendatei 279
Primär 278
Sekundär 278, 286
Datendefinitionssprache 152
Datenintegrität 62, 312, 556
Datenkonsistenz 63, 431
Datenmanipulation auf Sichten 446
Datenmanipulationssprache 152
Datenprovider 740
Datensatz
Ändern 332
Einfügen 327
Kopieren 336
Löschen 335
Manipulation 327
mit IDENTITY-Wert einfügen 331
mit NULL und DEFAULT eingeben 329
Datensteuerungssprache 152
Datentypen 602
Datentypen in SQL Server 64
bigint 155
bit 155
char(n) 155
datetime 155
decimal 155
float 155
money 155
nchar(n) 155
numeric 155
nvarchar(n) 155
real 155
smalldatetime 155
smallmoney 155
TABLE 425
tinyint 155
varchar(n) 155
Datenzugriffs-API 709
DATEPART 230, 232
DATEPART-Funktion 583, 645
datetime 155, 156
Datums-/Uhrzeitfunktionen 155, 230
Datums-/Uhrzeitwerte 159
DAY 230, 231, 232
DAY-Funktion 102
dayofyear 230
db_accessadmin 351
db_backupoperator 351
861
Index
db_datareader 351
db_datawriter 351
db_ddladmin 351
db_denydatareader 351
db_denydatawriter 351
DB_ID-Funktion 495
db_owner 351
db_securityadmin 351
DBCC 296
DBCC CHECKDB 609
DBCC CHECKFILEGROUP 609
DBCC CHECKTABLE 609
DBCC SHOW_STATISTICS 503
DBCC SHOWCONTIG 494
DBCC SHRINKDATABASE 296
DBCC SHRINKFILE 297
DBConcurrencyException 842, 849
dbcreator 350
DBMS 78
dbo 367
DCL 152
DDL 152, 451
DDL-Ereignisgruppen 452
DDL-Trigger 451, 454, 626
DDL-Trigger mit Datenbankbereich 451,
453
DDL-Trigger mit Serverbereich 451
Deadlock 547, 556, 559
Beispiel 549
Opfer 548
Situation 548
Vermeidung 549
DEALLOCATE 471
Debugging 562
decimal 155
DECLARE 205, 459
DECLARE...CURSOR 459
DEFAULT 312, 316, 329, 379, 395, 413,
427
DEFAULT VALUES 332
DEFAULT-Wert 671
deklarative Integrität 450
DELAY 221
DELETE 335, 380, 382, 429, 514
Delete 691, 800
DELETE FROM 335
DeleteCommand 816
deleted 434, 458, 519
DELETED-Tabelle 628, 672
862
Denormalisierung 97
DENSE_RANK-Funktion 664
DENSE_RANK-Methode 665
DENY 354
Detailtabelle 318
Dienst 106, 145
Dienstkonto 38
Dienst-Manager 101, 103
DIFFERENCE 234
DirectoryInfo-Klasse 601
DISABLE TRIGGER...ON 438
diskadmin 350
DISTINCT 169
Division 160
DML 152, 429
DML-Anweisung 445, 514
DML-Trigger 429, 437, 454, 626
Domänenkonto 38
Doppelt verkettete Liste 484
DQL 152
DROP 451
DROP COLUMN 311
DROP DATABASE 286
DROP FUNCTION 416, 424
DROP INDEX 497
DROP PROCEDURE 403
DROP STATISTICS 502
DROP TABLE 311
DROP TRIGGER 441
DROP TRIGGER...ON ALL SERVER 453
DROP TYPE-Statement 608
DROP USER 347
DROP VIEW 376
DROP XML SCHEMA COLLECTION 684
DROP_EXISTING 497
DTS 50, 106
Durability 516
DYNAMIC 460
Dynamische Management-Views 635
Dynamische SQL-Anweisung 241
EXECUTE 241
sp_executesql 242
E
E/R-Diagramm 98
Ebene 244
Eigene Fehler auslösen 661
Eigenschaften-Fenster 131
Index
Eindeutigkeit 66
Einschränkung 312
Aktivieren 323
Deaktivieren 323
Definition 313
Definition auf Spaltenebene 313
Definition auf Tabellenebene 313
Eigenschaften 314
Löschen 323
Nachträgliche Definition 321
Verwalten 322
Einschränkung 씮 Constraint
Einzug
Vergrößern 127
Verkleinern 128
Elementar 88
ELEMENTS 700
ELSE-Zweig 213
E-Mail 458
ENCRYPTION 407
END 212
END TRY 658
Endbenutzer-Lizenzvertrag 30
EndEdit 799
Endlosschleife 126
Enterprise Manager 101
Entität 65
Entitätstyp 65
Entity/Relationship-Diagramm 98
Entscheidungstabellen mit PIVOT erstellen
645
Ereignisauswahl 506
Ereignisgruppen 453
Ergebnis 128
in Datei 126
in Raster 126
in Text 126
Ergebnis 씮 Abfrageergebnis
Ergebnisbereich 128
error handling 246
ERROR_LINE() 251
ERROR_LINE-Funktion 659
ERROR_MESSAGE() 250
ERROR_MESSAGE-Funktion 659
ERROR_NUMBER() 250
ERROR_NUMBER-Funktion 658
ERROR_PROCEDURE() 250
ERROR_PROCEDURE-Funktion 659
ERROR_SEVERITY() 250
ERROR_SEVERITY-Funktion 658
ERROR_STATE() 250
ERROR_STATE-Funktion 659
ERRORLOG 528
Erstellen einer Sicht 374
Erstellung einer gespeicherten Prozedur
389
Erweiterte gespeicherte Prozeduren 552
Debugging 552
Erweiterte gespeicherte Prozeduren 씮
C++
Erweiterte gespeicherte Prozeduren 씮
Extended stored procedures
Erweiterte gespeicherte Prozeduren 씮 XPs
EULA 30
EventData-Eigenschaft 631
Event-Parameter 627
Excel 127, 276
EXCEPT-Statement 674
Exclusive lock 531
EXEC 123
EXECUTE 123, 241, 387
EXECUTE AS 411
Benutzername 411
CALLER 411
OWNER 411
SELF 411
ExecuteAndSend()-Methode 593
ExecuteAndSend-Methode 628
ExecuteNonQuery 752, 820
ExecuteReader 754
ExecuteScalar 757
exists() 686
Exklusionsverknüpfung 267
exklusive Oder-Funktion 301
EXPLICIT-Modus 695
Explizite Konvertierung 238
Extended Stored Procedures 552
Extended Stored Procedures 씮 XPs
EXTERNAL 596
EXTERNAL_ACCESS 563, 564, 571
F
Fallunterscheidung 222
CASE 222
ISNULL 228
Farbcodierung
Blau 123
863
Index
Dunkelgrau 123
Dunkelgrün 123
Grün 123
Magenta 123
Rot 123
Rotbraun 123
Farbcodierung 씮 Programmcode
Fehler 255
Abbruch verursachende 255
Benutzerdefiniert 255
Fehler auslösen 661
RAISERROR-Funktion 661
Fehler auslösen 씮 Eigene Fehler auslösen
Fehler auslösen 씮 RAISERROR-Funktion
Fehlerauslösung mit Parametern 259
Fehlerbehandlung 246, 657
@@ERROR 246
TRY...CATCH 246
Fehlermeldungen 243
Ebene 244
Meldung 244
Meldungstext 245
Status 244
Zeile 244
Festkommazahlen 155
FETCH...FROM 462
Fiber 555
FILEGROWTH 278, 281, 285
FILENAME 278, 280, 285
Fill 765
FILLFACTOR 492
FillRowMethodName-Parameter 581,
588
FillSchema 774
finally-Block 599
fire a trigger 429
Firewall 709
FIRST 464
FK 70
float 155
FOR DELETE-Klausel 629
FOR INSERT-Klausel 629
FOR UPDATE-Klausel 629
FOR XML-Klausel 695
AUTO-Modus 695
BINARY BASE64 700, 704
ELEMENTS 700
EXPLICIT-Modus 695
PATH-Modus 695
864
RAW-Modus 695
ROOT 700, 701
TYPE 700, 702
XML 695
XMLDATA 704
XMLSCHEMA 700, 703
xsi, nil 702
xsi:nil 702
XSINIL 700, 703
FOREIGN KEY 70, 312, 315, 431
ForeignKeyConstraint 777
FOR-Klausel 643
Formatierung 153
Format-Parameter 603, 618
FORWARD_ONLY 460, 464, 473
Fragmentierung 494, 496
Fremdschlüssel 70, 158
mit NULL-Zulässigkeit 331
Fremdschlüssel 씮 FK
Fremdschlüsselverletzung 72
Funktionen 229
Datum/Uhrzeit 230
Fehlerbehandlung 250
Konfigurations- 229
Konvertierung 237
Mathematische 236
Status 237
Zeichenfolge 233
Funktionen bereitstellen 581
Funktionen zur Fehlerbehandlung 250
Funktionen zur Statusabfrage 237
Funktionskörper 415
Funktionsweise 씮 Sicht
G
Ganzzahlen 155
Garbage Collector 557
Steuerung 557
Gebrochene Besitzerkette 367
Gemischter Modus 39, 110, 342
Geschäftsobjekte 602
Gespeicherte Prozedur 385, 554, 572
Anzeige der Parameter 397
Ausgabeparameter 398
Eingabeparameter 391
ENCRYPTION 407
Erstellen 389
Löschen 403
Index
Maximale Größe 387, 402
Maximale Parameteranzahl 402
Optionen 407
Performance-Gewinn 388
Positionsbezogene Übergabe 394
Quelltext 386
RECOMPILE 409
RETURN 403
Rückgabestatuscode 402
verweisbezogene Übergabe 396
Gespeicherte Prozedur mit Visual Studio
erstellen 572
Gespeicherte Prozedur 씮 stored
procedure
GetChildRows 795
GETDATE 231, 232
GetParentRow 795
GetParentRows 795
Gleitkommazahlen 155
Globale Variable 208
GO 203, 389, 454
GOTO 220
GRANT 354
GRANT...WITH GRANT OPTION 357
GROUP BY 197
GROUP BY…HAVING 198
Gruppierte Ranglisten mit Windowing
666
Guest 364
Gültigkeitsbereich von Variablen 207
H
Hardwareserver 60
HasErrors 842
Heap 480, 484
HOLDLOCK 542
Host 556
Hosting Layer 559
Hosting-API 558
HostProtection-Attribut 561
hour 230
HTML 680
HTTP 709
I
I/O-Zugriffe 557
IBinarySerialize-Interface 613, 623
Identitätsspalte 307
IDENTITY 307, 331, 449, 458
IDENTITYCOL 307
Identity-Spalten 671
IEnumerable-Interface 584, 587
IF EXISTS 215, 274
IF…ELSE 213
IF-Zweig 213
IIS 33
IL-Code 561
Impersonalisierung 564, 597
Impersonate-Methode 598
Implementierung der Datenintegrität 312
implizite Konvertierung 238
IN 182
Index 479
Automatische Erstellung 493
B-Baum 482
Blattebene 482, 487
clustered 480
Durchlaufen eines 483
Erstellung 490
Fragmentierung 494, 496
Füllfaktor 492
Geeignete Spalten 504
Gruppierter 480, 484
leaf-level 482
löschen 497
Manuelle Erstellung 490
Maximale Anzahl nicht gruppierter
Indizes 483
Neuerstellung 497
Nicht geeignete Spalten 504
Nicht gruppiert 482
Nicht gruppiert auf Heap 480
Nicht gruppierter 480
Nicht gruppierter auf gruppiertem 487
Oberste Seite 482
Planung 503
root 482
Schlüsselwerte 482
Seite 482
Stamm/Wurzel 482
Statistiken 498
Struktur 479, 481
Umwandlung 486
Uniqueifier 487
Verwalten 494
Index 씮 balanced tree
865
Index
Index 씮 B-Baum
Index 씮 B-Tree
Indextypen 692
Indizierung von XML-Feldern 692
InfoMessage (Ereignis) 591, 748
Informationen über den Fehler ermitteln
658
Informationsschemasichten 382
Initialisierung 206
Init-Methode 619
Inkonsistenz 532
Inlinefunktion 418, 422
In-Memory ADO.NET-Datenprovider 588
INNER JOIN 267
Umkehrung der Funktionsweise 273
Innere Verknüpfung 267
INSERT 327, 379, 381, 429, 514, 691
INSERT INTO...DEFAULT VALUES 332
INSERT INTO…VALUES 327
INSERT…SELECT 336
InsertCommand 816
inserted 434, 458, 519
INSERTED-Tabelle 628, 672
Instanz 107
Benannte 36
Standard 36, 107
instawdb.sql 121
INSTEAD OF-Trigger 432, 440, 444, 626
INSTEAD OF-Trigger, Verwendung mit
Sicht 446
int 155
integer 155
Integrated Security-Option 601
Integration Services 50, 106
Integrität
Deklarative 450
Prozedurale 450
Integritätsarten 81
Benutzerdefinierte 82
Domänen 82
Entitäts 82
Referenzielle 82
Intellicense 121
Intermediate Language 561
International Standards Organization 151
Interne Transaktionsverarbeitung 518
Internet 709
Internet Information Server 33
866
INTERSECT-Statement 674
Intranet 709
INullable-Interface 604
is_event_logged 245
ISBN-Nummer 69, 89
IsByteOrdered-Parameter 603
IsDeterministic-Parameter 581, 610
IsFixedLenght-Parameter 603
IsInvariantToDuplicates-Parameter 619
IsInvariantToNulls-Parameter 619
IsInvariantToOrder-Parameter 619
IsMutator-Parameter 610
ISNULL 228
IsNullIfEmpty-Parameter 619
IsNull-Methode 604
ISO 151
ISO SQL-2003-Standard 679
Isolation 516
Isolationsstufe
Eigenschaften 540
Informationen über 540
READ COMMITTED 535
READ UNCOMMITTED 533
REPEATABLE READ 536
SERIALIZABLE 538
Isolationsstufe 씮 SERIALIZABLE
Isolationsstufen auf Verbindungsebene
532
IsPrecise-Parameter 581, 610
isql (Dienstprogramm) 147
IsSendingResultsets-Eigenschaft 597
Iterator 584
J
Jahr 230
JDBC 709
JIT-Image 558
JOIN-Operator 265
CROSS JOIN 272
INNER JOIN 267
LEFT OUTER JOIN 270
Mehrfache Anwendung 271
OUTER JOIN 270
RIGHT OUTER JOIN 270
Just-In-Time-Kompilierung 558
Index
K
Kalenderwoche 230
Kartesisches Produkt 272
Kennwort 109
Speicherung 109
Kennzeichnung 158
von Datums-/Uhrzeitwerten 159
von Zahlenwerten 159
von Zeichenketten 159
Klammeroperator 184
Klassenbibliotheken 568
Kommentar 123, 159
Block 159
Entfernen 127
Hinzufügen 127
Zeilen 159
Kompatibilität festlegen 637
Kompatibilität festlegen 씮 sp_dbcmplevel
Konfigurationsfunktionen 229
Konfigurations-Manager 145
Konsistenz 516
Konvertierung 238
Explizite 238
Implizite 238
Informationsverluste 240
Konvertierungsfunktionen 237
Kopfgesteuerte Schleife 217
Kreuztabellen in flache Listen transformieren 647
Kreuztabellen mit PIVOT erstellen 641
Kreuzverknüpfung 272
L
language_id 245
LAST 464
Laufzeitinformationen 634
LEFT 233
LEFT OUTER JOIN 270
Leistungsindikator 635, 636
LEN 234
Lesezeichen 142
Aktivieren 144
Deaktivieren 144
in Ordner gruppieren 144
Löschen 144
Umbenennen 144
Umschalten 143
Zugriff auf 144
Lesezeichen 씮 Management Studio
Lesezeichenfenster 142
LIKE 183
Linke äußere Verknüpfung 270
localhost 108
LOG 278, 527
LOG ON 278
Login 342
Logische Operatoren 161
AND 162
NOT 162
OR 162
Lokale Administratoren 363
Lokale Variable 205, 208
Lokales Systemkonto 38
Loop-Back-Connection 552
Löschen einer gespeicherten Prozedur
403
Löschen einer Sicht 376
Löschweitergabe 318, 336
LOWER 234
LTRIM 234
M
Managed Code 553, 555
Management Studio 103
Abfrage-Designer 131
Eigenschaften-Fenster 131
Ergebnisbereich 128
Lesezeichen 142
Lesezeichenfenster 142
Oberfläche 110
Registrierte Server 145
Skript-Generierung 141
Vorlagen-Explorer 137
Management Studio 씮 SQL Server
Massenkopieren 338
bcp 339
BULK INSERT 338
master 112
Mastertabelle 318
Mathematische Funktionen 236
MAX 187
MaxByteSize-Parameter 603, 619
MaxLength 774, 776
867
Index
MAXSIZE 278, 281, 285
Mehrfache JOIN-Anweisungen 271
Mehrtabellenabfragen 265
Meldungen 128, 244
Meldungstext 245
Mengenlehre 61
Merge-Methode 619
Message 252
message_id 245
Methodenüberladungen 569
Microsoft Developer Network 34
Microsoft SQL Native Client 31
Microsoft.SqlServer.Server-Namespace
575, 581, 590
Millisekunde 230
MIN 187
Minute 230
Mirroring 301
MissingMappingAction 788
model 114, 281, 285
MODIFY FILE 291
modify() 686
Modulo-Division 160
Monat 230
money 155, 156
MONTH 231, 232
month 230
mscorlib.dll 560
msdb 114
MSDE 26
MSDN 34
mssqlsystemresource 113
Multiplikation 160
Mutator-Methoden 611
Neustart 114
NewRow 800
NEXT 464
NICHT 162
NOCHECK CONSTRAINT 323
NOCHECK CONSTRAINT ALL 323
Node Table 692
nodes() 686
NOLOCK 542
NONCLUSTERED 480, 491, 493
Normalformen 86
Normalisierung 85
praktische Anwendung 93
Normalisierungsregeln 86
1. Normalform 88
2. Normalform 90
3. Normalform 92
Normalisierungsregeln 씮 Datenbankentwurf
Normalisierungsregeln 씮 Normalformen
IS 179
NOT 162, 163
NTILE-Funktion 664
NTILE-Methode 669
NTLM 709
NULL 179, 206, 329, 395
Null-Eigenschaft 604
NULL-Wert 570, 671
NULL-Zulässigkeit 306
Number 252
numeric 155
nvarchar(n) 155, 156
N
O/R-Mapper 602
OBJECT_ID-Funktion 407, 495
Objektberechtigungen 353
Objekt-Explorer 111
Objektverwaltung 366, 367
ODBC 552, 709
ODBC-Treiber 31
ODER-Verknüpfung 162
Office-Dokumente 680
OLAP 105
OLE DB 709
OLE DB-Provider 31
OLEDB 552
OleDbConnection 740
Nachteile 씮 Extended Stored Procedures
NAME 278, 280, 285
Name 153
Named Pipes 709
Name-Parameter 581, 603, 619, 627
Namespace 681
Native Client 31
Native Serialisierung 613
nchar(n) 155, 156
Netzwerkserver 107
Neue Abfrage 121
Neue Ablaufverfolgung 506
868
O
Index
ON 267, 278, 308
ON DELETE 319
ON UPDATE 319
Online Analytical Processing 105
Online-Banking 70
Onlinedokumentation 102, 134
Dynamische Hilfe 136
Favoriten hinzufügen 136
Filter 136
Hilfefavoriten 136
Index 135
Suchen nach 135
OnNullCall-Parameter 610
OPEN 461
Open (Connection) 745
OPENXML
Der OPENXML-Rowset-Provider 705
Ein XML-Dokument in eine Tabelle
importieren 706
sp_xml_preparedocument 706
sp_xml_removedocument 708
OPENXML 씮 sp_xml_preparedocument
OPENXML 씮 sp_xml_removedocument
OPENXML 씮 XML
OPENXML-Abfragen 674
Operatoren 123, 160
Arithmetische 160
Auswahl 179
Logische 161
Vergleich 161
Verknüpfung 265
Zeichenkette 161
Operatorenrangfolge 163, 176
Optimierungsratgeber 505
OPTIMISTIC 460
OPTION(MAXRECURSION X) 656
Optionen von gespeicherten Prozeduren
407
OR 162, 163
Oracle 106, 151, 153, 276, 525
ORDER BY-Klausel 171
Orders.dll 562
osql (Dienstprogramm) 147
OUTER APPLY-Statement 639
OUTER JOIN 270
OUTER JOIN-Abfragen 638
OUTPUT 399
OUTPUT-Klausel 671, 672
OUTPUT-Parameter 576
OVER-Klausel 666
P
PAD_INDEX 492
page 481
Paging mit ROW_NUMBER 668
PAGLOCK 542
Paketmigrations-Assistenten 50
Parallelität 532
Parameter und Rückgabewerte 570
Parametrisierte Abfragen 757
Parametrisierte Sicht 420
Parität 301
Parse-Methode 604, 605
PARTITION BY-Klausel 666
PATH-Index 693
PATH-Modus 695
PATINDEX 233, 235
PDA 106
Performance Counter 636
Performance und Verfügbarkeit 602
PERMISSION_SET-Parameter 564
Personal Digital Assistant 106
Personalnummer 70
Physischer Speicherort 308, 488
Pipes 590
PIVOT-Anweisung 641
PK 67
Pocket PC 106
Position 481
Positionsmarke 457
POWER 237
Primäre Datendatei 278, 281
Primärer Index 692
Primärschlüssel 66, 158
Kombinierter 67
Vorhandensein 70
Wahl eines 68
Primärschlüssel 씮 Eindeutigkeit
Primärschlüsselverletzung 67
PRIMARY 279, 309
PRIMARY KEY 66, 312, 314, 427, 493,
776
PRINT 125, 238, 248, 251
PRIOR 464
Procedure-Objekt 568
processadmin 350
869
Index
Produktivumgebung 33, 145
Produktschlüssel 34
Profiler 51, 505, 635
Programmcode, farbige Markierung 121
Programmgesteuerte Fehlerauslösung
257
Programmierung von DML-Triggern 431
Projektion 166
PROPERTY-Index 693
Protokoll 81, 519
Protokolldatei 278, 279, 281
Prozedur 250
Prozeduren mit Visual Studio debuggen
579
Prozeduren vs. Funktionen 567
Prozess 543
Prozess-ID 546
Prozessorauslastung 114
public 351
pubs 86
Pufferüberläufe 559
Q
Quartal 230
quarter 230
Query Analyzer 101
Query Engine 584, 673
Query Optimizer 651
query() 686
R
RAID-Systeme 298
RAID 0 299
RAID 1 300
RAID 3 301
RAID 5 302
RAISERROR 257, 258
RAISERROR-Funktion 661
RAND 237
RANK-Funktion 664
Ranking- und Windowing-Funktionen
663
Ranking- und Windowing-Funktionen 씮
Windowing-Funktionen
RANK-Methode 664
RAW-Modus 695
RDBMS 78
870
Read (DataReader) 756
READ_ONLY 460
READCOMMITTED 542
ReadOnly 774
READUNCOMMITTED 542
ReadXmlSchema 774, 775
real 155
Rechte 350
Rechtevergabe 356
Rechtevergabe an Benutzer und Rollen
353
RECOMPILE 409
RECONFIGURE 567
Recordset 128
Leeres 128
Recovery 527
Redundanz 61
Überprüfung auf 95
Vermeidung von 62
REFERENCES 315
Registrierte Server 145
Reguläre Ausdrücke 553
Reguläre Bezeichner 154
Reiter 121, 142, 247
Ergebnisse 128
Meldungen 128
Rekursionsstufe einstellen 656
Rekursive Abfragen 653
Relation 61, 65
Relationstyp 65
RELATIVE n 464
Relative Positionsangabe 468
Remote Procedure Calls 609
REPEATABLE-Option 674
REPEATABLEREAD 542
replace value of 691
REPLACE-Funktion 646
Reporting Services 105
Ressourcendatenbank 113
RETURN 220, 403
RETURNS 415, 419
RETURNS NULL ON NULL INPUT-Option
582
RETURN-Statement 663
REVERSE 234
REVOKE 354
RIGHT 234
RIGHT OUTER JOIN 270
ROLLBACK TRANSACTION 522
Index
ROLLBACK-Statement 660
Rolle 349
Benutzer hinzufügen 352
Datenbank, benutzerdefiniert 352
Datenbank, fest 351
Erstellen 352
Server 350
ROOT 700
ROUND 237
ROW_NUMBER-Funktion 664
ROW_NUMBER-Methode 667, 668
RowError 842
ROWLOCK 542
Rows 790
RowUpdated 847
RowUpdating 847
RTRIM 234
Rückgabecode 402
Rückgabedatentyp 414
S
s (Platzhalter) 260
SAFE 563, 571
sa-Konto 562
Schema 341, 366, 683
Erstellen 368
Standardschema zuweisen 369
Schema Collection 683
Schleifenbedingung 217
Schleifenende 218
Schleifenkopf 218
Schleifenkörper 217
Schlüssel 66
Fremd 70
Primär 66
Schlüsselsymbol 158
Schlüsselwort 123
Schriftart 123
schützenswerter Algorithmus 407
SCROLL 460
SCROLL_LOCKS 460
second 230
securityadmin 350
Security-Management 556
Seite 481
Seitennummer 481
Seitenteilung 485
Sekundäre Datendateien 278, 281
Sekundärer Index 693
Sekunde 230
SELECT_Anweisung 164
SELECT…FROM 164
SELECT…INTO 337
SELECT-Anweisung
* (Platzhalter) 166
AS 167
Berechnete Spalten 168
COMPUTE BY-Klausel 200
COMPUTE-Klausel 199
DISTINCT 169
Einbindung mehrere Tabellen 265
GROUP BY...HAVING-Klausel 198
GROUP BY-Klausel 197
ORDER BY-Klausel 171
Spaltenliste 166
TOP 194
TOP n 195
TOP n PERCENT 195
TOP n WITH TIES 196
UNION 193
WHERE-Klausel 174
SelectCommand 764, 816
Selektion 174
Send-Methode 590
SendResultsEnd-Methode 594, 601
SendResultsRow-Methode 594
SendResultsStart-Methode 594, 600
SEQUEL 151
Serialisierung 612
SERIALIZABLE 542
Serializable-Attribut 604
Server 59, 457
Ressourcen 60
Verfügbare 107
Server Management Objects 638
Server Management Objects 씮 SMO
Server, registrierte 145
serveradmin 350
Servereigenschaften 111
Servername 107, 108
Serverrollen 350
Serverseitigen Datenzugriff mit ADO.NET
588
Servertyp 104
Analysis Services 105
Datenbankmodul 104
Integration Services 106
871
Index
Reporting Services 105
SQL Server Mobile 105
Servicepack 46
SET 206
SET DEADLOCK_PRIORITY 549
SET IMPLICIT_TRANSACTIONS 525
SET LOCK_TIMEOUT 541
SET TRANSACTION ISOLATION LEVEL
533
SET-Statement 609
setupadmin 350
Severity 252
severity 245, 662
shared lock 530
Sicherheitsbereich 씮 Extended Stored Procedures
Sicherheitshierarchie 341
Sicherheitsrichtlinien 559
Sicht 371, 446
Ändern 376
Datenmanipulationen auf 377
DELETE auf 380, 382
Einsatz 372
Einschränkungen 374
Erstellen 374
im Objektkatakog 375
-Informationsschema 382
INSERT auf 378, 379, 381
Löschen 376
Parametrisierte 420
System- 382
UPDATE auf 379, 381
Verwaltung 374
Sicht 씮 View
SIZE 278, 281, 285
Skalar 414
Skalare CLR-Funktionen 580, 582
Skalare CLR-Funktionen erstellen 583
Skalarwertfunktion 414, 423
Skalierbarkeit 709
Skript 121, 141
Skript-Generierung 141
smalldatetime 155, 156
smallint 155
smallmoney 155, 156
SMO 638
SNAC 31
SOAP 709
Softwareserver 60
872
Sortierungseinstellungen 39
SourceTable 785
sp_add_operator 396
sp_addlinkedserver 276
sp_addmessage 255
sp_addrolemember 353, 385
sp_configure 567
sp_dbcmplevel 637
sp_dropmessage 262
sp_executesql 242
sp_help 298
sp_helpdb 284, 298
sp_helpfile 298
sp_helpindex 493
sp_helptext 407
sp_recompile 411
sp_spaceused 298
sp_who 546
sp_xml_preparedocument 706
sp_xml_removedocument 708
SPACE 234
Spalte
Definition 305
Hinzufügen 309
Identitäts 307
Löschen 311
NULL-Zulässigkeit 306
Spaltenalias 167
Spaltendefinition 305
Spaltenname 64
Speicherkorruption 559
Speicher-Management 556
Speicherverwaltung 555
Speicherwarnungen 557
Sperre 529
Block 530
Datenbank 530
Datensatz / Schlüssel 530
Ebene 530
Exklusive 531
Gemeinsame 530
Hinweise auf Tabellenebene 541
Information über 542
Seite 530
Tabelle 530
Timeout 540
Sperre 씮 exclusive lock
Sperre 씮 shared locks
Sperrstufe einer Verbindung 540
Index
Spindelsynchronisation 302
Sprungmarke 220
SQL 151
Bezeichner 153
Formatierung 153
SQL Abfrage-Editor 121
SQL Injection 385
SQL Server (Dienst) 145, 146
SQL Server 2000 26, 42, 46, 102
SQL Server 2005 25
Aktualisierung 42
Developer Edition 26
Enterprise Edition 25
Evaluation Edition 26
Express Edition 26
Installation 28
Installationsvoraussetzungen 25
Mobile Edition 27
Standard Edition 26
Systemvoraussetzungen 27
Unterstützte Betriebssysteme 27
Versionen 25
Workgroup Edition 26
SQL Server 7.0 42, 46, 102, 104, 106
SQL Server Agent 147
SQL Server Authentifizierung 39
SQL Server Desktop Engine 26
SQL Server Dienste
SQL Server 145
SQL Server Agent 145
SQL Server Integration Services 106
SQL Server Management Studio 103
SQL Server Mobile 105
SQL Server Oberflächenkonfiguration
565
SQL Server Onlinedokumentation 134
SQL Server Profiler 505
SQL Server Profiler-Ereignisse 635
SQL Server, Oberfläche 101
SQL Server-Browser 146
SQL Server-Datentypen 602
SQL Server-Dienste 145
SQL Server 146
SQL Server-Agent 147
SQL Server-Browser 146
SQL Server-Volltextsuche 146
SQL Server-Dienste 씮 Dienst
SQL Server-Konfigurations-Manager 145
SQL Server-Volltextsuche 146
sql_identifier 684
SQL-99-Standard 642, 649
SQL-Anweisungen 121
Bearbeiten von 121
SQL-Bereich anzeigen 141
SqlBinary 571
SqlBoolean 571
SqlByte 571
SQLCLR 551, 567
Verwendung 554
sqlcmd (Dienstprogramm) 147
Abfrage ausführen 149
Beenden 149
Parameter 147
sqlcmd-Tool 578
SqlCommand 752
SqlCommandBuilder 817
SqlCommand-Klasse 588, 593
SqlConnection 740
Eigenschaften 747
SqlConnection-Klasse 588, 591
SqlContext-Klasse 588, 590, 598, 627
SqlDataAdapter 763
SqlDataAdapter-Klasse 588, 618
SqlDataReader 754, 756
SqlDataReader-Klasse 591
SqlDataRecord-Klasse 595
SqlDateTime 571
SqlDbType 760
SqlDecimal 571
SqlDouble 571
SqlException 849
SqlFunction-Attribut 581, 588
SqlGuid 571
SqlInfoMessageEventHandler 591
SqlInt16 571
SqlInt32 571
SqlInt64 571
SqlMetaData-Klasse 600
SqlMethod-Attribut 610
SqlMoney 571
SqlParameter 760
SqlParameterCollection 760
SqlParameter-Klasse 588
SqlPipe-Klasse 588, 590, 594
SqlPipe-Klasse 씮 Send-Methode
SqlPipe-Objekt 580
SqlProcedure-Attribut 568, 575
SqlRowUpdatedEventArgs 847
873
Index
SqlSingle 571
SqlString 571
SqlTrigger-Attribut 626
SqlTriggerContext-Klasse 589
SqlTypes.SqlXml-Klasse 631
SqlUserDefinedAggregate-Attribut 618,
622
SqlUserDefinedType-Attribut 603, 609
SQRT 237
SSIS 50, 106
Standarddateigruppe 309
Standarddatenbank 124
Stapel 207
Stapeltrennzeichen 203
State 252
StateChange (Ereignis) 748
STATIC 460
Statistik
Aktualisieren 502
Automatisch aktualisieren 499
Automatisch erstellen 499
Erstellung 500
Informationen über 500, 502
Löschen 502
Statistiken 498
statistische Werte 500
Status 244
Statuscode 403
Stored Procedures 385, 554
Streaming-Funktionen 584
string 123
Striping 299
Strong name 558
Structured English Query Language 151
Structured Query Language 151
Struktur von Fehlermeldungen 243
Stunde 230
SUBSTRING 234
Subtraktion 160
Suche fortsetzen 107
SUM 187
Syntaxprüfung 125
sys.assemblies_modules-View 633
sys.assemblies-View 633
sys.assembly_files-View 633
sys.assembly_types-View 633
sys.databases 495
sys.dm_clr_appdomains-View 635
874
sys.dm_clr_loaded_assemblies-View 635
sys.dm_clr_properties-View 635
sys.dm_clr_tasks-View 635
sys.dm_db_index_physical_stats 495
sys.dm_tran_locks 542
sys.objects 495
sys.sql_modules 407
sys.stats 502
sys.triggers-View 633
sys.types-View 608
sys.xml_schema_collections 685
sys.xml_schema_namespaces 685
sysadmin 350
System Administrator 39
System Administrator (sa) 362
System.* 560
system.data.dll 560
System.Data.SqlClient-Namespace 588
System.Data.SqlServer-Namespace 588
System.Data.SqlTypes 576
System.Data.SqlTypes-Namespace 570
system.dll 560
System.Drawing 561
system.security.dll 560
System.Security.Principal.WindowsIdentity-Klasse 598
System.Security.Principal.WindowsImpersonationContext-Klasse 598
System.Web 561
system.web.services.dll 560
System.Windows.Forms 561
system.xml.dll 560
Systemassemblies 558
SystemDataAccess-Parameter 581
Systemdatenbanken
master 112
model 114
msdb 114
mssqlsystemresource 113
tempdb 114
Systemdatentypen 154
Systemfehler, Verhalten bei 520
Systemfunktion 123
Systemkonfigurationsüberprüfung 33
Systemobjekt 123
Systemprozedur 123
Systemsichten 113, 382, 383
Systemtabellen 562
Index
T
Tabelle 61
Ändern 309
ändern 309
Beziehungen 72
Erstellung 305
Information zu Datentypen 158
Leeren 336
Löschen 311
Physischer Speicherort 308
Spalte ändern 310
Spalte hinzufügen 309
Spalte löschen 311
Spaltendefinition 305
Struktureller Aufbau 63
Temporäre 324
Tabelle 씮 Relation
Tabellenalias 266
Tabelleninhalt, Anzeige des 119
Tabellenname 64, 305
Tabellenscan 479, 481
Tabellenseiten 673
Tabellenseiten 씮 Table Pages
Tabellenstruktur, Anzeige der 119
Tabellenwertfunktion 418, 423
Tabellenwertfunktion mit mehreren
Anweisungen 422
Tabellenwertige CLR-Funktionen 580
Tabellenwertige CLR-Funktionen erstellen 584
TABLE 425
Table Pages 673
TableAdapters 813
TableDefinition-Parameter 581, 588
TableMappings 784
Tables 783
TABLESAMPLE-Klausel 673
REPEATABLE-Option 674
TABLESAMPLE-Klausel 씮 REPEATABLEOption
TABLE-Variable 647, 672
TABLOCK 542
TABLOCKX 542
Tabular Data Stream 594
Tag (der Woche) 231
Tag (des Jahres) 230
Tag (des Monats) 230
targetNamespace-Attribut 683
Target-Parameter 627
Tasks 557
tblAutor 320
tblAutorBuch 321
tblBank 320
tblBuch 321
TCP/IP 709
TDS-Format 594
TDS-Format 씮 Tabular Data Stream
TDS-Protokoll 709
tempdb 114, 324
templates 137
Temporäre Prozeduren 577
Temporäre Tabelle 324
Globale 325
Lokale 324
Löschen 325
Terminate-Methode 619
Testdatensätze, Erzeugung von 273
text 245
Textdatei 106
Thread-Management 556, 557
Threadmodelle 555
Thread-Pools 555
Threads 556, 557
Thread-Synkronisation 556
TIME 222
Timeout 540, 557
tinyint 155
Tool Tip 102
TOP 194
TOP n 195
TOP n PERCENT 195
TOP n WITH TIES 196
TOP-Klausel 673
ToString-Methode 604, 605
trace 507
TRAN 522
TRANSACTION 522
Transact-SQL 151, 460
Transact-SQL Cursor 460
Transaktion 513
Bestätigen 522
Checkpoint 519
Einführung 513
Explizite 525
Finanz 513
Implizite 525
Interne Verarbeitung 518
875
Index
Isolationsstufe auf Verbindungsebene
532
Phantomwert 538
Programmierung 521
Protokoll 519
Prüfpunkt 519
Recovery 527
Rollback 521
Rollforward 521
Rückgängig machen 522
Transaktionsprotokoll 519
Transaktionsprotokolldatei 279
Transformation 677
Trigger 250, 429, 458, 626
AFTER 432
Ändern 444
Anzeige des Quelltext 445
DDL 451
Deaktivieren 437
deleted-Tabelle 434
DML 429
Funktionskörper 439
Implementieren 628
inserted-Tabelle 434
Installieren 632
INSTEAD OF 440
Löschen 441
mit Datenbankbereich 451, 453
mit Serverbereich 451
Programmierung 429
Trigger 씮 deleted
Trigger 씮 inserted
TriggerAction-Eigenschaft 627
TriggerContext-Klasse 627, 631
TRUNCATE TABLE 336
TRUSTWORTHY-Eigenschaft 596
TRY 406
TRY...CATCH 246
TRY/CATCH-Block 662
TRY…CATCH 252, 414, 522
TRY-Block 247
T-SQL 551
Verwendung 553
T-SQL-Statement 553
Tuning 506
Tupel 65
TYPE 700
Typen als Klassen abbilden 616
Typsysteme 555
876
U
u (Platzhalter) 259
Übergabe
positionsbezogene 394
verweisbezogene 396
UDF 413
UNCHECKED DATA-Option 563
Uncommited-Status 658
Undo()-Methode 599
UND-Verknüpfung 162
Unicode 157
Unicode-Format 616
UNION 193
UNIQUE 315, 427, 490, 493
Unique 774, 776
UNIQUE Constraint 312
UniqueConstraint 777
Uniqueifier 487
Unique-Indizes 584
UNPIVOT-Anweisung 642
UNSAFE 563, 564
Unterabfrage 209, 216, 274
Unterabfragen 189
Unterschiede zwischen T-SQL- und CLRFunktionen 584
UPDATE 332, 379, 381, 429, 514
Update 815
UPDATE STATISTICS 502
UPDATE...SET 332
UpdateCommand 816
Updateratgeber 42
Analyse-Assistent 48
Anwendung 46
Download 43
Installation 43
Systemvoraussetzungen 43
UpdateStatus 847
UPDLOCK 542
UPPER 234
US-amerikanisch 260
USE 164, 454, 510
User 347
User Defined Aggregates 554
User Defined Functions 413, 554, 580
User Defined Triggers 554
User Defined Types 554, 602
USER-Funktion 365
UTF-16 616
Index
V
ValidationMethodName-Parameter 603
value() 686
VALUE-Index 693
varchar(n) 155, 156
Variable 205
Deklaration 205
Globale 208
Gültigkeitsbereich 207
Initialisierung 206
Lokale 205, 459
Verwendung 208
Wertezuweisung 206
Wertezuweisung durch Abfrage 209
Wertezuweisung mit SELECT 210
Wertezuweisung mit SET und Unterabfrage 209
Veralteter Ausführungsplan 410
Verarbeitung von hierachischen Daten
653
Verbesserung der Abfrageleistung 479
Verbinden 110
Verbindungsserver 276
Verbindungszeichenfolge 741
Attribute 742
Verfügbare Datenbanken 124
Vergleichsoperatoren 161
Verknüpfungsbedingung 268
Verschachtelte Fehlerbehandlung 662
Verschachtelte Sortierung 173
Versionierung von Assemblies 602
Versionsnummer 47
Vertrauenswürdige Verbindung 110
Vertraute Verbindung 342
Verwendung des Datentyps TABLE als
lokale Variable 425
Verwendung eines Rückgabestatuscodes
402
Verwendung von Ausgabeparametern
398
Verwendung von Eingabeparametern 391
Verzögerte Namensauflösung 409
View 371
VISIBILITY-Option 563
Visual Basic 553
Visual Studio .NET 105
Visual Studio 2005 572
Vollgekennzeichneter Namen 275
Vollqualifizierte Bezeichner 366
Vollqualifizierter Name 275, 367
Volltextsuche 680
Vorlage 137
Parameterwerte angeben 139
Vorlagen-Explorer 137
Vorwärtscursor 464
W
Wahrheitswerte 162
Währung 155
WAITFOR 221, 550
Wartungsaufgabe 114
Webservices 709
week 230
weekday 230
Wertebereich 155
Wertezuweisung 160
Wertezuweisung an eine Variable 206
WHEN 223
WHERE CURRENT OF 477
WHERE-Klausel 174, 265
WHILE 217
WHILE-Schleife 472
Wiederherstellung beim Systemstart 527
Wildcards 694
Windowing-Funktionen 663
WindowsIdentity-Eigenschaft 598
WindowsIdentity-Klasse 598
WindowsImpersonationContext-Klasse
598
Windows-Systemsteuerung 145, 147
WITH GRANT OPTION 357
WITH NOCHECK 322
WITH PERMISSION_SET-Direktive 578
WITH-Schlüsselwort 650
Wochentag 230
workload 505
Write-Ahead-Protokoll 518
WriteXmlSchema 775
X
XACT_ABORT-Anweisung 657
XDR-Schema (XML-Data Reduced) 704
XML 157, 677, 692, 709
ALTER XML SCHEMA COLLECTION 684
Attribute 681
877
Index
Binärdaten in XML abbilden 704
CREATE XML SCHEMA COLLECTION
683
Dokumente 682
DROP XML SCHEMA COLLECTION 684
Elemente 681
FOR XML-Klausel 695
Fragmente 682
Indexerstellung 681
Indextypen 692
Indizierung von XML-Feldern 692
Leerzeichen 682
Namespace 681
OPENXML 705
PATH-Index 693
Primärer Index 692
PROPERTY-Index 693
Ressourcenverbrauch 682
Schema Collection 683
Sekundärer Index 693
Standardwerte definieren 683
sys.xml_schema_collections 685
sys.xml_schema_namespaces 685
targetNamespace-Attribut 683
Transformation 695
Typisiertes und untypisiertes XML 681
Validierung 681
VALUE-Index 693
Vor- und Nachteile der XML-Datenspeicherung 679
Wildcards 694
Wohlgeformtheit 681
Wurzelelement 682
XDR-Schema (XML-Data Reduced) 704
XML DML 686
XML DOM (XML Document Object Model)
706
xml:base 691
XML-Daten aufbereiten 695
XML-Daten in einem relationalen Modell
speichern 705
XML-Daten konvertieren 683
XML-Datentyp verwenden 682
XML-Feld füllen 682
XML-Feld mit einem Schema verknüpfen
684
XML-Felder anlegen 681
XML-Felder mit einem Schema verknüpfen
683
878
XML-Index 693
xmlns 691
XML-Schemata 683
XPath 685
XQuery 685
xsi:nil 691
xsi:type 691
XML DML
after 691
before 691
delete 691
first 691
insert 690
into 691
last 691
replace value of 691
XML 씮 CREATE XML INDEX
XML 씮 Indextypen
XML 씮 Indizierung von XML-Feldern
XML 씮 Namespace
XML 씮 Node Table
XML 씮 PATH-Index
XML 씮 Primärer Index
XML 씮 PROPERTY-Index
XML 씮 Sekundärer Index
XML 씮 VALUE-Index
XML 씮 Wildcards
XML 씮 XDR-Schema (XML-Data Reduced)
XMLDATA 704
XML-Data Modification Language 686
XML-Datenbanken 677
XML-Datentyp 679
exists() 686
modify() 686
nodes() 686
query() 686
value() 686
XML-Dokumentspeicherung 681
XML-Fähigkeiten des SQL Server 2005
678
XmlReader-Klasse 631
XMLSCHEMA 700
XPath 677, 685
XPs 552
XQuery 685
XQuery-Prozessor 692
XQuery 씮 delete
XQuery 씮 insert
XQuery 씮 replace value of
Index
XQuery 씮 XQuery-Prozessor
XQuery-Prozessor 692
xsi:nil 702
XSINIL 700
XSLT 677
Y
YEAR 231, 232
year 230
Z
Zahlenwerte 159
Zählervariable 218
Zeichen 155
Zeichenfolgenfunktionen 233
Zeichenketten 123, 159, 233
Zeichenkettenoperator 161
Zeichenverkettung 161
Zeile 244
Zeilen-Endezeichen 153
Zeilennummer 220
Zelle 66
Zwischenspeicher 518
879
Herunterladen