New tsql features

504 views

Published on

Published in: Technology
  • Danke für das SlideShare und die interessanten Informationen.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

New tsql features

  1. 1. Digicomp AcademySQL Day n  Neue T-SQL Features
  2. 2. Ihr Kursleitern  Roland Straussn  Kaufm. Lehre/Programmierer/Analytikern  Selbstständig seit 1984n  SQL Server seit Version 4.2 (1993)n  Kursleiter SQL Server seit 1994
  3. 3. Neue Befehlen  WITH RESULT SETSn  OFFSET AND FETCHn  THROW in Error handlingn  SEQUENCEn  Get Metadata of Resultset
  4. 4. EXEC Proc WITH ...[ WITH <execute_option> [ ,…n ] ]<execute_option>::={ RECOMPILE | { RESULT SETS UNDEFINED } | { RESULT SETS NONE } | { RESULT SETS ( <result_sets_definition> [,…n] ) }}<result_sets_definition> ::={ ( { column_name data_type [ COLLATE collation_name ] [ NULL | NOT NULL ] } [,…n ] ) | AS OBJECT [ db_name . [ schema_name ] . | schema_name . ] {table_name | view_name | table_valued_function_name } | AS TYPE [ schema_name.]table_type_name | AS FOR XML}
  5. 5. WITH RESULT SETSCREATE  PROCEDURE  Denali_WithResultSet  AS  BEGIN        SELECT  1  as  No,’Tsql’  Type,  ‘WithResultSet’  AS  Feature  UNION  ALL      SELECT  2  as  No,’Tsql’  Type,  ‘Throw’  AS  Feature  UNION  ALL      SELECT  3  as  No,’Tsql’  Type,  ‘Offset’  AS  Feature  UNION  ALL      SELECT  4  as  No,’Tsql’  Type,  ‘Sequence’  AS  Feature    END  GO  EXEC  Denali_WithResultSet    WITH  RESULT  SETS  (      (    No    int,    FeatureType  varchar(50),    FeatureName    varchar(50)      )    )    
  6. 6. OFFSET and FETCH  ORDER  BY  order_by_expression          [  COLLATE  collation_name  ]            [  ASC  |  DESC  ]            [  ,...n  ]    [  <offset_fetch>  ]      <offset_fetch>  ::=  {            OFFSET  {  integer_constant  |  offset_row_count_expression  }  {  ROW  |  ROWS  }          [              FETCH  {  FIRST  |  NEXT  }  {integer_constant  |  fetch_row_count_expression  }  {  ROW  |  ROWS  }  ONLY          ]  }  
  7. 7. OFFSET and FETCHSELECT  ProductID,  Name    FROM  Production.Product  ORDER  BY  NAME    OFFSET  10  ROWS  FETCH  NEXT  5  ROWS  ONLY  
  8. 8. THROWn  Bisher signalisierte man einen Fehler mit RAISERROR  (nnnnn,  16,   1)  n  Fehlermeldung musste in sys.messages existierenn  Fehler konnte nicht im CATCH-Block wiederholt werdenn  Mit Throw kann eine beliebige Fehlernummer verwendet werdenn  Ausführung von Throw ohne Parameter im CATCH Block wiederholt die auslösende Fehlermeldung
  9. 9. THROWTHROW [ { error_number | @local_variable }, { message | @local_variable }, { state | @local_variable }][;]
  10. 10. THROWBEGIN  TRY    BEGIN  TRANSACTION  -­‐-­‐  Start  the  transaction    -­‐-­‐  Delete  the  Customer    DELETE  FROM  Customers    WHERE  EmployeeID  =  ‘CACTU’      -­‐-­‐  Commit  the  change    COMMIT  TRANSACTION  END  TRY  BEGIN  CATCH    -­‐-­‐  There  is  an  error    ROLLBACK  TRANSACTION    -­‐-­‐  Re  throw  the  exception    THROW  END  CATCH  
  11. 11. SEQUENCEn  Globale IDENTITYn  Steht nicht unter Transaktionskontrolle  CREATE  SEQUENCE  [schema_name  .  ]  sequence_name          [  AS  [  built_in_integer_type  |  user-­‐defined_integer_type  ]  ]          [  START  WITH  <constant>  ]          [  INCREMENT  BY  <constant>  ]          [  {  MINVALUE  [  <constant>  ]  }  |  {  NO  MINVALUE  }  ]          [  {  MAXVALUE  [  <constant>  ]  }  |  {  NO  MAXVALUE  }  ]          [  CYCLE  |  {  NO  CYCLE  }  ]          [  {  CACHE  [  <constant>  ]  }  |  {  NO  CACHE  }  ]          [  ;  ]  
  12. 12. SEQUENCECREATE  SEQUENCE  dbo.Seq  AS  INT  START  WITH  1  INCREMENT  BY  1;    CREATE  TABLE  dbo.Examp1  (      Seq  INT  NOT  NULL,      Name  VARCHAR(50)  NOT  NULL  );  INSERT  INTO  dbo.Examp1(Seq,  Name)  VALUES(NEXT  VALUE  FOR  dbo.Seq,  ‘Tom’);      
  13. 13. Get Metadata of ResultSetsn  Erzeugt detaillierte Beschreibung des Result Setssp_describe_first_result_set    @tsql  =  N’SELECT  *  FROM  customers’    
  14. 14. Andere Erweiterungenn  Weiter auf MSDNn  http://msdn.microsoft.com/en-us/library/cc645577.aspx
  15. 15. Kurse DigicompMOC  10774:  Wri-ng  Queries  with  Microso9  SQL  Server  2012  Transact-­‐SQL  (5  Tage)    

×