Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Waldo Bohnet Geändert vor über 10 Jahren
1
T-SQL - Techniken und Neuerungen Jörg Neumann RESCO GmbH Hamburg
2
Jörg Neumann IT-Consultant bei der RESCO GmbH in Hamburg. Hält Schulungen und Coachings zum SQL Server 2005 Schreibt für verschiedene Fachzeitschriften Schreibt an einem Buch über den SQL Server 2005 Hält Vorträge auf Entwicklerkonferenzen Schwerpunkte: SQL Server Smart Clients Visual Studio Extensibility Links zu weiterführenden Artikeln und Büchern finden Sie am Ende der Slides. Kontakt: Joerg.Neumann@RESCO.de
3
Agenda Kreuztabellen Abfrage von hierarchischen Daten Fehlerbehandlung
4
Agenda Kreuztabellen Abfrage von hierarchischen Daten Fehlerbehandlung
5
Beispiel Name1234 Buchanan, Steven23431,908462,4015365,0028308,45 Callahan, Laura52356,0525487,8127091,8028365,37 Davolio, Nancy60476,5836195,5548487,8856983,70 Dodsworth, Anne35498,5514013,8017323,7016127,95 Umsatzliste aller Mitarbeiter pro Quartal NameAmountQuarter Buchanan, Steven23431,901 Buchanan, Steven8462,402 Buchanan, Steven15365,003 Buchanan, Steven28308,454 Callahan, Laura52356,051 Callahan, Laura25487,812...
6
Lösungswege UNION Temporäre Tabellen User Defined Functions PIVOT-Klausel (SQL2005)
7
Demo Kreuztabellen
8
PIVOT / UNPIVOT PIVOT PIVOT transformiert ein flaches Resultset in eine Kreuztabelle UNPIVOT UNPIVOT transformiert eine Kreuztabelle in ein flaches Resultset ANSI SQL-99-Standard
9
PIVOT Beispiel Umsatzliste aller Mitarbeiter pro Quartal Query Subquery PIVOT Block SELECTEmployee, [1], [2], [3], [4] FROM (SELECT Employee, Amount, Quarter FROM Orders ) AS Orders PIVOT (SUM (Amount) FOR Quarter IN ([1], [2], [3], [4]) ) AS PV ORDER BY Employee
10
Agenda Kreuztabellen Abfrage von hierarchischen Daten Fehlerbehandlung
11
Beispiel Eine Abteilung inkl. aller Unterabteilungen des Unternehmens ermitteln VorstandProduktionEinkaufVerkaufVerkauf InlandVerkauf AuslandFinanzenControllingFinanzbuchhaltungLonhbuchhaltung DepartmentParentDepartment Vorstandnull ProduktionVorstand EinkaufVorstand VerkaufVorstand Verkauf InnlandVerkauf Verkauf AuslandVerkauf FinanzenVorstand ControllingFinanzen FinanzbuchhaltungControlling LohnbuchhaltungControlling
12
Lösungswege Cursor Schleife Common Table Expressions (SQL2005)
13
Demo Hierarchische Daten
14
Common Table Expressions CTE Eine CTE definiert ein Abfrage, die innerhalb eines Statements wieder verwendet werden kann Vergleichbar mit einer View auf Statement-Ebene ANSI SQL-92-Standard Nützlich beim Umgang mit hierarchischen Daten Als Ersatz für Redundante Unterabfragen Views, die nur von einem Statement verwendet werden Rekursive Prozeduraufrufe Cursor-Läufe Optimierter Ausführungsplan
15
WITH WITH CTE(Department, ParentDepartment) AS ( SELECTDepartment, ParentDepartment FROMDepartments WHEREParentDepartment = 'Finzanzen' UNION ALL SELECTDepartments.Department, Departments.ParentDepartment FROMDepartments INNER JOIN CTE ON Departments.ParentDepartment = CTE.Department ) SELECT Department FROM CTE Query Rekursion Anchor CTE Beispiel Zugriff
16
Weitere Optionen Es können auch mehrere CTEs in einem WITH-Block definiert werden Die maximale Rekursionsstufe ist einstellbar Erzeugt Fehler beim Überschreiten WITH DepartmentsCTE(Department, ParentDepartment) AS ( … ) SELECT Department FROM DepartmentsCTE OPTION(MAXRECURSION 2) WITH DepartmentsCTE(Department, ParentDepartment) AS(SELECT …), Employees(ID, Name) AS(SELECT …)
17
Agenda Kreuztabellen Abfrage von hierarchischen DatenFehlerbehandlung
18
Fehlerbehandlung Exception-basierte Fehlerbehandlung Try/Catch (kein Finally) Kann geschachtelt werden Vorteil: @@error muss nicht nach jedem Statement abgefragt werden Syntax: BEGIN TRY { sql_statement | statement_block } END TRY BEGIN CATCH { sql_statement | statement_block } END CATCH
19
TRY/CATCH Setzt die laufende Transaktion in einen uncommited-Status Nur Lesezugriffe oder Rollback möglich Auslösen eines Fehlers mit RAISERROR Einschränkungen: Es werden nur Fehler mit Schweregrad (Severity) 11-20 verarbeitet Connection-Abbruch oder KILL wird nicht berücksichtigt Prozedur- oder Funktionsaufrufe werden nicht unterbrochen
20
Fehler verarbeiten Informationen ermitteln: ERROR_NUMBER() ERROR_SEVERITY() ERROR_STATE() ERROR_PROCEDURE() ERROR_LINE() ERROR_MESSAGE() Fehlerinformationen vor Rollback ermitteln Informationen nach Rollback speichern
21
Demo Fehlerbehandlung
22
Fragen?
23
Ressourcen Bücher A First Look at SQL Server 2005 for Developers Bob Beauchemin u.a., Addison-Wesley, ISBN: 0321180593 Artikel SQL Server 2005 Transact-SQL Enhancements http://msdn.microsoft.com/sql/default.aspx?pull=/library/en- us/dnsql90/html/sql_05TSQLEnhance.asp Links SQL Server 2005 Developer Center http://www.msdn.microsoft.com/SQL/2005/ T-SQL Enhancements Virtual Lab http://msdn.microsoft.com/vstudio/tryit/hosted/sql/tsqlenhancements/
24
Resco GmbH Millerntorplatz 1 D-20359 Hamburg Germany www.resco.de... vielen Dank für Ihre Aufmerksamkeit jobs@resco ----- gesucht ----- IT-Berater (m/w) mit Schwerpunkt Microsoft.NET, SQL Server, Sharepoint, BizTalk Server Standorte: Hamburg, Frankfurt, Düsseldorf
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.