Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

T-SQL - Techniken und Neuerungen Jörg Neumann RESCO GmbH Hamburg.

Ähnliche Präsentationen


Präsentation zum Thema: "T-SQL - Techniken und Neuerungen Jörg Neumann RESCO GmbH Hamburg."—  Präsentation transkript:

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


Herunterladen ppt "T-SQL - Techniken und Neuerungen Jörg Neumann RESCO GmbH Hamburg."

Ähnliche Präsentationen


Google-Anzeigen