1 / 24

T-SQL - Techniken und Neuerungen

T-SQL - Techniken und Neuerungen. Jörg Neumann RESCO GmbH Hamburg. 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

read
Download Presentation

T-SQL - Techniken und Neuerungen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 Umsatzliste aller Mitarbeiter pro Quartal

  6. Lösungswege • UNION • Temporäre Tabellen • User Defined Functions • PIVOT-Klausel (SQL2005)

  7. Demo Kreuztabellen

  8. PIVOT / UNPIVOT • PIVOT transformiert ein flaches Resultset in eine Kreuztabelle • UNPIVOT transformiert eine Kreuztabelle in ein flaches Resultset • ANSI SQL-99-Standard

  9. PIVOT Beispiel Umsatzliste aller Mitarbeiter pro Quartal SELECT Employee, [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 Query Subquery PIVOT Block

  10. Agenda • Kreuztabellen • Abfrage von hierarchischen Daten • Fehlerbehandlung

  11. Vorstand Produktion Einkauf Verkauf Verkauf Inland Controlling Verkauf Ausland Finanzen Finanzbuchhaltung Lonhbuchhaltung Beispiel Eine Abteilung inkl. aller Unterabteilungen des Unternehmens ermitteln

  12. Lösungswege • Cursor • Schleife • Common Table Expressions (SQL2005)

  13. Demo HierarchischeDaten

  14. Common Table Expressions • 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. Anchor Query Rekursion Zugriff CTE Beispiel WITH CTE(Department, ParentDepartment) AS ( SELECT Department, ParentDepartment FROM Departments WHERE ParentDepartment ='Finzanzen' UNION ALL SELECT Departments.Department, Departments.ParentDepartment FROM Departments INNER JOIN CTE ON Departments.ParentDepartment = CTE.Department ) SELECT Department FROM CTE

  16. WITH DepartmentsCTE(Department, ParentDepartment) AS(SELECT …), Employees(ID, Name) AS(SELECT …) 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)

  17. Agenda • Kreuztabellen • Abfrage von hierarchischen Daten • Fehlerbehandlung

  18. BEGIN TRY { sql_statement | statement_block } END TRY BEGIN CATCH { sql_statement | statement_block } END CATCH Fehlerbehandlung • Exception-basierte Fehlerbehandlung • Try/Catch (kein Finally) • Kann geschachtelt werden • Vorteil: @@error muss nicht nach jedem Statement abgefragt werden • Syntax:

  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 Enhancementshttp://msdn.microsoft.com/sql/default.aspx?pull=/library/en-us/dnsql90/html/sql_05TSQLEnhance.asp Links • SQL Server 2005 Developer Centerhttp://www.msdn.microsoft.com/SQL/2005/ • T-SQL Enhancements Virtual Labhttp://msdn.microsoft.com/vstudio/tryit/hosted/sql/tsqlenhancements/

  24. jobs@resco ----- gesucht ----- IT-Berater (m/w) mit Schwerpunkt Microsoft .NET, SQL Server, Sharepoint, BizTalk Server Standorte: Hamburg, Frankfurt, Düsseldorf ... vielen Dank für Ihre Aufmerksamkeit Resco GmbH Millerntorplatz 1D-20359 HamburgGermanywww.resco.de

More Related