Share via


Erweiterungen der Programmierbarkeit des Datenbankmoduls

Microsoft SQL Server 2005 führt verschiedene Verbesserungen und neue Features für Datenbankmodul ein, die die Programmierfunktionen und -produktivität verbessern. Datenbankobjekte können in Microsoft .NET Framework-basierten Sprachen geschrieben werden, beispielsweise Microsoft Visual C#. Entwicklung und Debuggen sind in die Umgebung von Microsoft Visual Studio integriert, sodass Entwickler zum Entwickeln von Datenbankobjekten dieselben Tools verwenden können wie zum Entwickeln von .NET Framework-basierten Komponenten und -Diensten. Die Sprache Transact-SQL wurde um neue Features erweitert, wie verbesserte Fehlerbehandlung und Unterstützung von rekursiven Abfragen.

Darüber hinaus wurden die Schnittstellen für den Datenzugriff erweitert, die von Anwendungen für den Zugriff auf Instanzen von Datenbankmodul verwendet werden. Diese Schnittstellen helfen dabei, die Produktivität von Programmierern zu steigern. Weitere Informationen finden Sie unter Erweiterungen der Schnittstellen für den Datenzugriff.

Wichtige Erweiterungen der Transact-SQL-Sprache sind unten aufgeführt. Weitere Informationen zu neuen Transact-SQL-Features finden Sie unter Neuigkeiten und Erweiterungen in Transact-SQL (Transact-SQL).

Erweiterungen der Programmierbarkeit

Microsoft .NET Framework: Integration von CRL (Common Language Runtime)

Die CLR-Funktionalität von Microsoft .NET Framework wird nun in SQL Server-Datenbankmodul gehostet. In dieser CLR-Integrationsumgebung werden Prozedurdatenbankobjekte unterstützt, einschließlich Funktionen, gespeicherte Prozeduren und Trigger, die in .NET Framework-basierten Sprachen geschrieben werden, beispielsweise Microsoft Visual C# und Visual Basic .NET. In .NET Framework-basierten Sprachen werden Logik und Features unterstützt, die nicht in der Transact-SQL-Sprache zur Verfügung stehen. Daher kann nun eine komplexere Logik in Datenbankobjekte integriert werden. Benutzerdefinierte Typen und Aggregate können ebenfalls in .NET Framework-basierten Sprachen geschrieben werden, um komplexere als die in früheren Versionen von SQL Server verfügbaren Datentypen zu erstellen.

Die integrierte CLR-Programmierumgebung ist in die Visual Studio-Entwicklungsumgebung integriert. Entwickler verwenden zum Entwickeln und Debuggen von Datenbankobjekten dieselben Tools wie zum Entwickeln von .NET-Komponenten und -Diensten auf Client-Ebene oder mittlerer Ebene.

Weitere Informationen finden Sie unter Introduction to Common Language Runtime (CLR) Integration.

Microsoft .NET Framework: Benutzerdefinierte Aggregate

Mit benutzerdefinierten Aggregatfunktionen, die in einer .NET Framework-basierten Sprache geschrieben sind, werden die grundlegenden Aggregatfunktionen erweitert (beispielsweise SUM, MIN und MAX), die in Transact-SQL enthalten sind. Eine Aggregatfunktion ist eine Funktion, die mehrere Datenwerte verarbeitet und nur einen Wert zurückgibt. Statt ein gesamtes Resultset für eine Anwendung abzurufen und in der Anwendung komplexe Aggregatlogik auszuführen, kann die Logik von einer .NET Framework-Aggregatfunktion in der Instanz von Datenbankmodul ausgeführt werden, wobei nur der endgültige Wert an die Anwendung zurückgegeben wird.

Weitere Informationen finden Sie unter CLR User-Defined Aggregates.

Microsoft .NET Framework: Benutzerdefinierte Typen

Mit CLR-benutzerdefinierten Typen (User-Defined Types, UDTs) können Sie Datenbankdatentypen in jeder von .NET Framework-CLR unterstützten Sprache implementieren. CLR-benutzerdefinierte Typen werden als Klassen in einer .NET Framework-basierten Sprache implementiert und können komplexe Strukturen und Verhaltensmuster aufweisen, die durch die Felder, Methoden und Eigenschaften der Klasse definiert werden. CLR-benutzerdefinierte Typen sind in das Typensystem von Datenbankmodul integriert und können in jedem Kontext verwendet werden, in dem die integrierten Typen verwendet werden.

Weitere Informationen finden Sie unter CLR User-Defined Types.

Microsoft .NET Framework: Gespeicherte Prozeduren, Trigger und benutzerdefinierte Funktionen

Prozedurdatenbankobjekte können in .NET Framework-basierten Sprachen geschrieben werden, damit eine komplexere Logik aufgenommen werden kann, die von der Transact-SQL-Sprache unterstützt wird. Programmierer verwenden bei der Entwicklung der Objekte dieselbe Sprache und Entwicklungsumgebung wie bei der Entwicklung von .NET Framework-Komponenten und -Diensten.

Weitere Informationen finden Sie unter CLR Stored Procedures, CLR Triggers und CLR User-Defined Functions.

Webzugriff: SOAP-Zugriff über systemeigenes HTTP

Instanzen von Datenbankmodul können mit HTTP-Endpunkten oder Adressen konfiguriert werden, an die Anwendungen SOAP-Anforderungen senden können. Die Pakete werden direkt von der Instanz von Datenbankmodul empfangen, ohne dass ein Dienst mittlerer Ebene, wie z. B. ein Server mit Microsoft Internetinformationsdiensten (Internet Information Services, IIS), konfiguriert werden muss.

Weitere Informationen finden Sie unter Verwenden der systemeigenen XML-Webdienste in SQL Server 2005.

Transact-SQL-Erweiterungen: Neuer XML-Datentyp

Mit Datenbankmodul wird ein neuer xml-Datentyp eingeführt, der das Speichern von XML-Dokumenten und -Fragmenten in Datenbanken unterstützt. XML-Instanzen können in Spalten, in Parametern von gespeicherten Prozeduren oder in Variablen gespeichert werden, die mithilfe des xml-Typs erstellt werden.

Weitere Informationen finden Sie unter XML-Datentyp.

Transact-SQL-Erweiterungen: FOR XML-Erweiterungen

Sie können FOR XML-Anweisungen verschachteln, um eine Hierarchie von XML-Dokumenten zu erstellen. Die Ergebnisse einer FOR XML-Anweisung können in Spalten, in Parametern von gespeicherten Prozeduren oder in Variablen gespeichert werden, die mithilfe des neuen xml-Datentyps definiert wurden.

Weitere Informationen finden Sie unter Neue FOR XML-Features.

Transact-SQL-Erweiterungen: Verbesserte Fehlerbehandlung

Programmierer können beim Codieren von Transact-SQL-Batches, gespeicherten Prozeduren, Triggern und benutzerdefinierten Funktionen die vertraute TRY-CATCH-Logik verwenden, um Fehlerbedingungen aufzufangen und zu behandeln.

Weitere Informationen finden Sie unter Behandeln von Fehlern des Datenbankmoduls.

Transact-SQL-Erweiterungen: Neue Metadatensichten

Mit SQL Server 2005-Datenbankmodul werden zwei neue Sätze von Sichten zum Abfragen von Metadaten eingeführt. Systemkatalogsichten stellen Informationen zu den Objekten, wie Tabellen, gespeicherten Prozeduren und Einschränkungen, bereit, die in SQL Server-Datenbanken definiert sind. Dynamische Verwaltungssichten stellen Informationen zum aktuellen Status einer Instanz von Datenbankmodul bereit. Dynamische Verwaltungssichten stellen Informationen aus Arbeitsspeicherstrukturen zur Verfügung, die nicht dauerhaft auf dem Datenträger gespeichert sind. Dazu gehören z. B. Informationen zu Sperren, Threads und Tasks.

Weitere Informationen finden Sie unter Abfragen des SQL Server-Systemkatalogs.

Transact-SQL-Erweiterungen: Rangfolge von Funktionen

Mit Datenbankmodul wird die neue Funktionskategorie der Rangfolgefunktionen eingeführt. Diese Kategorie besteht aus folgenden Funktionen:

  • RANK
  • DENSE_RANK
  • NTILE
  • ROW_NUMBER

Diese Funktionen geben für jede Partitionszeile einen Rangfolgenwert zurück.

Weitere Informationen zu einer Liste dieser Funktionen finden Sie unter Rangfolgefunktionen (Transact-SQL).

Transact-SQL-Erweiterungen: DDL-Trigger (Data Definition Language)

Datenbankmodul unterstützt nicht nur Trigger, die durch DML-Anweisungen (Data Manipulation Language) ausgelöst werden (INSERT, UPDATE und DELETE), sondern enthält auch eine neue Klasse von Triggern, die durch DDL-Anweisungen (Data Definition Language) ausgelöst werden, die Datenbankobjekte ändern, wie z. B. die mit CREATE, ALTER oder DROP startenden Anweisungen. DDL-Trigger können zum Überwachen oder Regulieren von Änderungen an einem Datenbankschema verwendet werden.

Weitere Informationen finden Sie unter DDL-Trigger.

Transact-SQL-Erweiterungen: Ereignisbenachrichtigungen

In Datenbankmodul kann eine neue Art von Objekt programmiert werden: Ereignisbenachrichtigungen. Ereignisbenachrichtigungen senden Informationen zu Transact-SQL-DDL-Anweisungen und SQL-Ablaufverfolgungsereignissen an einen Service Broker-Dienst. Ereignisbenachrichtigungen können zum Protokollieren und Überprüfen von Datenbankänderungen und -aktivitäten verwendet werden. Sie werden asynchron ausgeführt und können eine Programmieralternative zu DML-Triggern, DDL-Triggern und der SQL-Ablaufverfolgung darstellen.

Weitere Informationen finden Sie unter Implementieren von Ereignisbenachrichtigungen.

Transact-SQL-Erweiterungen: Warteschlangen-Verarbeitungserweiterungen

Drei Transact-SQL-Erweiterungen vereinfachen das Erstellen von Nachrichtenwarteschlangen-Anwendungen in lose verbundenen und zuverlässigen Internetskalierungssystemen und Systemen für die Automatisierung von Geschäftsprozessen. INSERT, UPDATE und DELETE unterstützen nun eine OUTPUT-Klausel, die Daten basierend auf den Zeilen zurückgibt, die von der Anweisung geändert wurden. READPAST kann nun in UPDATE- und DELETE-Anweisungen angegeben werden. Diese Anweisungen können daher Warteschlangenzeilen auslassen, die von anderen Tasks beansprucht werden, und die nächste verfügbare Zeile einer Warteschlange wählen.

Weitere Informationen finden Sie unter OUTPUT-Klausel (Transact-SQL) und Sperrhinweise.

Transact-SQL-Erweiterungen: ULOB-Programmiermodell (Unified Large Object)

In früheren Versionen von SQL Server mussten große Zeichenfolgen von mehr als 8.000 Bytes als einer der Datentypen text, ntext oder image gespeichert werden, die ein anderes Programmiermodell als die Datentypen für kürzere Zeichenfolgen verwendeten (char, nchar, varchar, nvarchar, binary und varbinary). Datenbankmodul unterstützt nun für die kürzeren Datentypen die Längenangabe MAX. Wenn MAX angegeben wird, können die Datentypen Zeichenfolgen mit der gleichen Größe wie die Werte text, ntext und image speichern (bis zu 2 GB). Diese Datentypen werden jedoch auf dieselbe Weise verarbeitet wie Datentypen, die kürzere Zeichenfolgen speichern.

Weitere Informationen finden Sie unter Verwenden von Datentypen mit umfangreichen Werten.

Transact-SQL-Erweiterungen: Rekursive Abfragen

Ein allgemeiner Tabellenausdruck ist ein Resultset, das während der Ausführung einer SELECT-, INSERT-, UPDATE- oder DELETE-Anweisung vorübergehend gespeichert wird. Ein allgemeiner Tabellenausdruck ermöglicht die Verwendung rekursiver Abfragen und vereinfacht die Logik, da keine temporären Tabellen oder Sichten verwendet werden müssen.

Weitere Informationen finden Sie unter Verwenden allgemeiner Tabellenausdrücke.

Transact-SQL-Erweiterungen: Neuer APPLY-Operator

Der Operator APPLY unterstützt das Aufrufen eines Tabellenwertausdrucks (d. h. einer Tabellenwertfunktion oder Unterabfrage) für jede Zeile, die von einem äußeren Tabellenverweis zurückgegeben wird. Dieser Tabellenwertausdruck wird für jede Zeile im äußeren Tabellenverweis ausgewertet.

Weitere Informationen finden Sie unter Verwenden von APPLY.

Transact-SQL-Erweiterungen: Neue PIVOT- und UNPIVOT-Operatoren

Mit den neuen Operatoren PIVOT und UNPIVOT werden Resultsets gedreht, wodurch Spalten zu Zeilen und Zeilen zu Spalten werden. Dies wird als Drehen von Daten oder Erstellen von Kreuztabellenberichten bezeichnet. Diese Vorgänge konnten in früheren Versionen von SQL Server zwar ausgeführt werden, erforderten aber eine komplexe Logik, die nun durch die Verwendung von PIVOT und UNPIVOT vereinfacht wurde.

Weitere Informationen finden Sie unter Verwenden von PIVOT und UNPIVOT.

Transact-SQL-Erweiterungen: Abfragebenachrichtigungen

Über Abfragebenachrichtigungen kann eine Anwendung ein Resultset zwischenspeichern und anfordern, dass sie von Datenbankmodul benachrichtigt wird, wenn zugrunde liegende Daten von einer anderen Anwendung geändert werden. Anwendungen, die Abfragebenachrichtigungen verwenden, müssen den Status von Daten in der Datenbank nicht regelmäßig überprüfen. Sie müssen die Daten nur überprüfen, wenn sie von Datenbankmodul über eine Änderung benachrichtigt werden.

Weitere Informationen finden Sie unter Verwenden von Abfragebenachrichtigungen.

Transact-SQL-Erweiterungen: Massenvorgänge (BULK-Vorgänge) mit OPENROWSET

OPENROWSET unterstützt nun BULK-Vorgänge zum Massenkopieren von Daten aus Datendateien. Die Steuerung von OPENROWSET-Massenvorgängen erfolgt über neue Tabellenhinweise und Optionen für Massenvorgänge wie BULK_BATCHSIZE und FORMATFILE. Die neue bulk_column_alias-Klausel unterstützt das Zuweisen von Spaltennamen zu Massenvorgangsdaten.

Weitere Informationen finden Sie unter OPENROWSET (Transact-SQL) und Tabellenhinweis (Transact-SQL).

Transact-SQL-Erweiterungen: TOP-Erweiterungen

Der Operator TOP wurde so erweitert, dass er alle numerischen Ausdrücke (z. B. Variablennamen) und nicht nur ganze Zahlen akzeptiert, um die Anzahl von Zeilen anzugeben, die vom Operator zurückgegeben werden. TOP kann nun auch in INSERT-, UPDATE- und DELETE-Anweisungen angegeben werden.

Weitere Informationen finden Sie unter TOP (Transact-SQL).

Transact-SQL-Erweiterungen: Verteilte Abfrage

Die EXECUTE-Anweisung unterstützt nun eine AT LinkedServer-Klausel, die angibt, dass eine gespeicherte Prozedur auf einem Verbindungsserver ausgeführt werden soll. Das CONTAINS-Volltextprädikat unterstützt vierteilige Namen bei der Ausführung von Abfragen auf Verbindungsservern. Die neuen LOB-Datentypen (Large Object) nvarchar(max), varchar(max) und varbinary(max) werden auch von verteilten Abfragen unterstützt. Es wurden neue SQL-Ablaufverfolgungsereignisse hinzugefügt, die Sie beim Analysieren der Interaktion zwischen verteilten Abfragen und OLE DB-Anbietern unterstützen.

Weitere Informationen finden Sie unter EXECUTE (Transact-SQL), CONTAINS (Transact-SQL), Datentypzuordnung mit verteilten Abfragen und OLE DB-Ereigniskategorie.

Transact-SQL-Erweiterungen: TABLESAMPLE

Die neue TABLESAMPLE-Klausel beschränkt die Anzahl der Zeilen, die von einer Abfrage verarbeitet werden. Im Gegensatz zum Operator TOP, der nur die ersten Zeilen aus einem Resultset zurückgibt, gibt TABLESAMPLE Zeilen zurück, die aus dem gesamten von der Abfrage verarbeiteten Zeilensatz ausgewählt wurden.

Weitere Informationen finden Sie unter Beschränken von Resultsets mit TABLESAMPLE.

Transact-SQL-Erweiterungen: Neue CASCADE-Integritätseinschränkungen

Die REFERENCES-Klausel unterstützt nun die kaskadierenden Aktionen der referenziellen Integrität SET NULL und SET DEFAULT. SET NULL gibt an, dass Fremdschlüssel durch die kaskadierenden Aktionen der referenziellen Integrität auf NULL festgelegt werden. SET DEFAULT gibt an, dass Fremdschlüssel auf den für die Spalte definierten Standardwert festgelegt werden.

Weitere Informationen finden Sie unter Kaskadierende Einschränkungen der referenziellen Integrität.

Transact-SQL-Erweiterungen: Überlaufdaten können die Seitengröße überschreiten

Zeilen können die Beschränkung von 8.060 Bytes überschreiten, wenn sie Spalten mit variablen Längen enthalten, in denen die Datentypen nvarchar, varchar, varbinary und sql_variant verwendet werden. Wenn die Zeile aufgrund der Breitenwerte aller dieser Spalten mit variablen Längen die maximale Seitengröße überschreitet, können Daten aus Spalten mit variablen Längen von Datenbankmodul auf separate Seiten verschoben werden.

Weitere Informationen finden Sie unter Zeilenüberlauf bei Daten über 8 KB.

Datenbankverwaltungsprogrammierung: Neue SMO-Anwendungsprogrammierschnittstelle (SQL Server Management Objects)

Das SMO-Objektmodell erweitert und ersetzt das DMO-Objektmodell (Distributed Management Objects). Das SMO-Objektmodell stellt Klassen zum Konfigurieren und Verwalten der Instanzen von Datenbankmodul bereit. Die Replikationsverwaltungsobjekte (RMO) ergänzen das SMO-Objektmodell, indem sie Klassen zum Konfigurieren und Verwalten der Replikation bereitstellen.

Weitere Informationen finden Sie unter SQL Server Management Objects (SMO).

Datenbankverwaltungsprogrammierung: Neue WMI-Anbieter von SQL Server

Der WMI-Anbieter für die Computerverwaltung ist ein Instanzanbieter. Das Ziel dieser Ebene besteht darin, eine vereinheitlichte Schnittstellenfunktion zu API-Aufrufen bereitzustellen, mit denen zum einen die Registrierungsvorgänge verwaltet werden, die von den Dienstprogrammen für Server- und Clientnetzwerke angefordert werden, und die zum anderen erweiterte Steuerungs- und Bearbeitungsfunktionen für die ausgewählten SQL-Dienste der Snap-In-Komponente des Computer-Managers bieten.

Weitere Informationen finden Sie unter WMI Provider for Configuration Management.

Über den WMI-Anbieter für Serverereignisse können Sie Ereignisse in SQL Server mithilfe von WMI (Windows Management Instrumentation) überwachen. Der Anbieter wandelt SQL Server in ein verwaltetes WMI-Objekt um. Jedes Ereignis, das eine Ereignisbenachrichtigung in SQL Server generieren kann, kann mithilfe dieses Anbieters von WMI verwendet werden. Darüber hinaus kann SQL Server-Agent als eine mit WMI interagierende Verwaltungsanwendung auf diese Ereignisse reagieren. Dadurch wird der durch SQL Server-Agent abgedeckte Ereignisbereich im Gegensatz zu früheren Versionen erweitert.

Weitere Informationen finden Sie unter WMI Provider for Server Events.

Siehe auch

Konzepte

Erweiterungen des Datenbankmoduls

Hilfe und Informationen

Informationsquellen für SQL Server 2005