SlideShare une entreprise Scribd logo
1  sur  49
Richie Rump
         @Jorriss
http://jorriss.net
•   Sequences
•   Data Paging
•   Analytic Window Functions
•   Conversion Functions
•   Logical Functions
•   Date/Time Functions
•   String Functions
• New construct to generate numeric
  sequences.
• Ability to set min and max values
• Cycle will set the current value to the min
  value when the max value is reached
• Future values can be cached minimizing
  disk IO.
• Returns metadata for the supplied SQL
  statement.
• Useful for determining column/database
  information for a SQL statement or
  Stored Procedure.
• If set to 0, no information is returned.
• If set to 1, each query is analyzed as if it
  includes a FOR BROWSE option on the query.
  This will return base table names as the
  source column information.
• If set to 2, each query is analyzed as if it
  would be used in preparing or executing a
  cursor. This will return view names as source
  column information.
• Allows the changing of column names
  and data types in the resultset of a
  stored procedure.
• Yes, you can change column names when
  you call a stored procedure.
• Allows for server side paging.
• Not data pages (8K of awesome) but
  paging like on a web page.
• OFFSET AND FETCH are arguments of the
  ORDER BY clause
• OFFSET – Number of rows to skip
• FETCH – Number of rows to return
•   LAG
•   LEAD
•   FIRST_VALUE
•   LAST_VALUE
•   PERCENT_RANK
•   CUME_DIST
•   PERCENTILE_CONT
•   PERCENTILE_DISC
• The OVER clause determines the
  partitions and order of a rowset before
  the window function is applied.

• WHAT CHU TALKING ABOUT WILLIS?
• PARTITON BY – Similar to GROUP BY but
  only applies to the window function and
  not the entire query.
• ORDER BY – Specifies the order of the
  rows in the partition
• No longer need to use a self-join or CTE.
• LAG: Access data from previous rows in
  the result set.
• LEAD: Access data from future rows in
  the result set.
• FIRST_VALUE: Retrieves the first value in
  a partition.
• LAST_VALUE: Retrieves the last value in a
  partition.
• Calculates a relative rank of a row.
• (RANK() – 1) / (Total Rows – 1)
• Calculates the percentage of values less
  than or equal to the current value in the
  group.
• COUNT(*) OVER (ORDER BY Col1) / Total
  Count
• Calculates a percentile value
• Will interpolate the appropriate value
• Can use to find the median
  – PERCENTILE_CONT(0.5)
• CONT stands for continuous
• Calculates a percentile value
• Like PERCENTILE_CONT but will select a
  value that exists in the set.
• Can use to find the median
  – PERCENTILE_CONT(0.5)
• DISC stands for discrete distribution
• Attempts to parse a string and convert it
  to a specified datatype.
• Can only convert to a number or
  datetime
• Uses the .Net CLR
• Like PARSE but if an error occurs returns
  a NULL.
• Still uses the .Net CLR.
• Attempts to cast a value into a specified
  data type. Returns NULL if CONVERT fails.
• Immediate If aka Inline If
• Takes a boolean expression and returns
  one of two values.
• Shorthand for CASE.
• Has the same limitations as CASE
  – Can only be nested to 10 levels
• Returns a value from a list based on a
  specified index.
• If the specified index is not in the list
  NULL is returned.
• Returns the data type based on data type
  precedence.
• Returns last date of a specified month.
• Can specify a month_to_add argument
  to increment or decrement result.
• DATEFROMPARTS ( year, month, day)
• DATETIME2FROMPARTS ( year, month, day, hour, minute,
  seconds, fractions, precision )
• DATETIMEFROMPARTS ( year, month, day, hour, minute,
  seconds, milliseconds )
• DATETIMEOFFSETFROMPARTS ( year, month, day, hour,
  minute, seconds, fractions, hour_offset, minute_offset,
  precision )
• SMALLDATETIMEFROMPARTS ( year, month, day, hour,
  minute )
• TIMEFROMPARTS ( hour, minute, seconds, fractions,
  precision )
• Does what it says…concatenates strings
  together.
• NULLs are automatically converted to
  empty strings.
• Can pass other data types for
  concatenation.
• Simplifies the string formatting of dates
  and other data types.
• No more memorizing numeric predefined
  format values.
• Returns a string.
• Uses .Net CLR
• Reduces the need to use RAISERROR in
  TRY/CATCH blocks.
• Can provide custom error messages.
• Always uses severity level 16.
Richie Rump
@Jorriss
jorriss@gmail.com
http://jorriss.net
http://dotnetmiami.com
Denali T-SQL at a Glance - New and Enhanced Functions
http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/denali-tsql-glance-enhanced-
functions-140785

T-SQL Improvements in SQL Server 2012
http://www.infoq.com/news/2012/03/T-SQL-2012

SQL SERVER – Denali – 14 New Functions – A Quick Guide
http://blog.sqlauthority.com/2011/09/21/sql-server-denali-14-new-functions-a-quick-
guide/

Performance Test of New Date Manipulation Functions (SQL Spackle)
http://www.sqlservercentral.com/articles/Performance/89505/

Keyboard Shortcuts in Visual Studio 2012. Need to import settings.
http://www.mssqltips.com/sqlservertip/2625/improvement-to-keyboard-shortcuts-in-sql-
server-2012-management-studio/
• MSDN: http://msdn.microsoft.com/en-
  us/library/ff878091.aspx
• Sequence: Why they aren’t just for surrogate keys:
  http://blog.infoadvisors.com/index.php/2012/02/16
  /new-in-sql-server-2012-sequences-why-they-arent-
  just-for-surrogate-keys/
• Sequence in 2012: http://www.sql-server-
  performance.com/2011/sequence-sql-server-2011/
• Create Sequence: http://www.dbadiaries.com/new-
  t-sql-features-in-sql-server-2012-create-sequence/
• MSDN: http://msdn.microsoft.com/en-
  us/library/ff878602.aspx
• http://blog.sqlauthority.com/2012/03/31
  /sql-server-sp_describe_first_result_set-
  new-system-stored-procedure-in-sql-
  server-2012/
• MSDN: http://msdn.microsoft.com/en-
  us/library/ms188332.aspx
• WITH RESULT SETS
  http://www.dbadiaries.com/new-t-sql-
  features-in-sql-server-2012-with-result-
  sets/
• MSDN: http://msdn.microsoft.com/en-
  us/library/ms188385.aspx
• TSQL 2012 – OFFSET and FETCH:
  http://stevestedman.com/2012/04/tsql-2012-
  offset-and-fetch/
• OFFSET and FETCH:
  http://www.dbadiaries.com/new-t-sql-
  features-in-sql-server-2012-offset-and-fetch/
• LAG - MSDN: http://msdn.microsoft.com/en-
  us/library/hh231256
• LEAD - MSDN: http://msdn.microsoft.com/en-
  us/library/hh213125
• FIRST_VALUE - MSDN:
  http://msdn.microsoft.com/en-
  us/library/hh213018
• LAST_VALUE - MSDN:
  http://msdn.microsoft.com/en-
  us/library/hh231517
• MSDN: http://msdn.microsoft.com/en-
  us/library/hh213573.aspx
• Introduction to PERCENT_RANK():
  http://blog.sqlauthority.com/2011/11/18/sql-
  server-introduction-to-percent_rank-analytic-
  functions-introduced-in-sql-server-2012/
• MSDN: http://technet.microsoft.com/en-
  us/library/hh231078.aspx
• Introduction to CUME_DIST:
  http://blog.sqlauthority.com/2011/11/08/sql-
  server-introduction-to-cume_dist-analytic-
  functions-introduced-in-sql-server-2012/
• PERCENTILE_CONT - MSDN:
  http://msdn.microsoft.com/en-
  us/library/hh231473.aspx
• Introduction to PERCENTILE_CONT:
  http://blog.sqlauthority.com/2011/11/20/sql-
  server-introduction-to-percentile_cont-analytic-
  functions-introduced-in-sql-server-2012/
• What exactly does PERCENTILE_CONT do?
  http://www.sqlskills.com/BLOGS/BOBB/post/Wh
  at-exactly-does-PERCENTILE_CONT-do-
  anyhow.aspx
• PERCENTILE_DISC - MSDN:
  http://msdn.microsoft.com/en-
  us/library/hh231327
• Introduction to PERCENTILE_DISC:
  http://blog.sqlauthority.com/2011/11/22/sql-
  server-introduction-to-percentile_disc-
  analytic-functions-introduced-in-sql-server-
  2012/
• Difference between PARSE(), TRY_PARSE(),
  TRY_CONVERT():
  http://blog.sqlauthority.com/2011/09/09/sql-server-
  denali-conversion-function-difference-between-parse-
  try_parse-try_convert/
• PARSE - MSDN: http://msdn.microsoft.com/en-
  us/library/hh213316.aspx
• TRY_PARSE - MSDN: http://msdn.microsoft.com/en-
  us/library/hh974669
• TRY_CONVERT - MSDN:
  http://msdn.microsoft.com/en-us/library/hh230993
• MSDN: http://msdn.microsoft.com/en-
  us/library/hh213574.aspx
• MSDN: http://msdn.microsoft.com/en-
  us/library/hh213019
• CHOOSE() – A Quick Introduction:
  http://blog.sqlauthority.com/2011/09/11/sql-
  server-denali-logical-function-choose-a-quick-
  introduction/
• MSDN: http://msdn.microsoft.com/en-
  us/library/hh213020.aspx
• EOMONTH() – A Quick Introduction:
  http://blog.sqlauthority.com/2011/09/20/sql-
  server-denali-date-and-time-functions-
  eomonth-a-quick-introduction/
• A Quick Introduction:
  http://blog.sqlauthority.com/2011/09/19/sql-
  server-denali-date-and-time-functions-
  datefromparts-datetimefromparts-
  datetime2fromparts-timefromparts-
  smalldatetimefromparts-
  datetimeoffsetfromparts-a-quick-introduc/
• MSDN: http://msdn.microsoft.com/en-
  us/library/hh231515.aspx
• MSDN: http://msdn.microsoft.com/en-
  us/library/hh213505.aspx
• New SQL Server Function to Format Dates:
  http://www.mssqltips.com/sqlservertip/2655/ne
  w-sql-server-function-to-format-
  dates/?utm_source=dailynewsletter&utm_mediu
  m=email&utm_content=headline&utm_campaig
  n=2012427
• Custom Numeric Formats -
  http://msdn.microsoft.com/en-
  US/library/0c899ak8.aspx#SpecifierD
• http://www.dbadiaries.com/new-t-sql-
  features-in-sql-server-2012-throw/

Contenu connexe

Tendances

Tendances (20)

Oracle SQL Advanced
Oracle SQL AdvancedOracle SQL Advanced
Oracle SQL Advanced
 
SQL Tunning
SQL TunningSQL Tunning
SQL Tunning
 
Intro to T-SQL - 1st session
Intro to T-SQL - 1st sessionIntro to T-SQL - 1st session
Intro to T-SQL - 1st session
 
Oraclesql
OraclesqlOraclesql
Oraclesql
 
MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017MySQL Replication Evolution -- Confoo Montreal 2017
MySQL Replication Evolution -- Confoo Montreal 2017
 
Sql server T-sql basics ppt-3
Sql server T-sql basics  ppt-3Sql server T-sql basics  ppt-3
Sql server T-sql basics ppt-3
 
ORACLE PL SQL
ORACLE PL SQLORACLE PL SQL
ORACLE PL SQL
 
SQL
SQLSQL
SQL
 
Getting Started with MySQL I
Getting Started with MySQL IGetting Started with MySQL I
Getting Started with MySQL I
 
PostgreSQL Tutorial For Beginners | Edureka
PostgreSQL Tutorial For Beginners | EdurekaPostgreSQL Tutorial For Beginners | Edureka
PostgreSQL Tutorial For Beginners | Edureka
 
MySql slides (ppt)
MySql slides (ppt)MySql slides (ppt)
MySql slides (ppt)
 
Mysql Explain Explained
Mysql Explain ExplainedMysql Explain Explained
Mysql Explain Explained
 
Introduction to SQL, SQL*Plus
Introduction to SQL, SQL*PlusIntroduction to SQL, SQL*Plus
Introduction to SQL, SQL*Plus
 
Recipes 6 of Data Warehouse and Business Intelligence - Naming convention tec...
Recipes 6 of Data Warehouse and Business Intelligence - Naming convention tec...Recipes 6 of Data Warehouse and Business Intelligence - Naming convention tec...
Recipes 6 of Data Warehouse and Business Intelligence - Naming convention tec...
 
Getting Started with MySQL II
Getting Started with MySQL IIGetting Started with MySQL II
Getting Started with MySQL II
 
ata Warehouse and Business Intelligence - Recipe 7 - A messaging system for O...
ata Warehouse and Business Intelligence - Recipe 7 - A messaging system for O...ata Warehouse and Business Intelligence - Recipe 7 - A messaging system for O...
ata Warehouse and Business Intelligence - Recipe 7 - A messaging system for O...
 
Database COMPLETE
Database COMPLETEDatabase COMPLETE
Database COMPLETE
 
SQL Server 2008 Performance Enhancements
SQL Server 2008 Performance EnhancementsSQL Server 2008 Performance Enhancements
SQL Server 2008 Performance Enhancements
 
SQL- Introduction to PL/SQL
SQL- Introduction to  PL/SQLSQL- Introduction to  PL/SQL
SQL- Introduction to PL/SQL
 
Oracle Data Redaction
Oracle Data RedactionOracle Data Redaction
Oracle Data Redaction
 

En vedette

SQL Server 2012 Certifications
SQL Server 2012 CertificationsSQL Server 2012 Certifications
SQL Server 2012 Certifications
Marcos Freccia
 
Sql server 2012 dba online training
Sql server 2012 dba online trainingSql server 2012 dba online training
Sql server 2012 dba online training
sqlmasters
 

En vedette (20)

Top 5 TSQL Improvements in SQL Server 2014
Top 5 TSQL Improvements in SQL Server 2014Top 5 TSQL Improvements in SQL Server 2014
Top 5 TSQL Improvements in SQL Server 2014
 
SQL Saturday 329 - Novo Cardinality Estimator do SQL Server 2014
SQL Saturday 329 - Novo Cardinality Estimator do SQL Server 2014SQL Saturday 329 - Novo Cardinality Estimator do SQL Server 2014
SQL Saturday 329 - Novo Cardinality Estimator do SQL Server 2014
 
Running SQL 2005? It’s time to migrate to SQL 2014!
Running SQL 2005? It’s time to migrate to SQL 2014!Running SQL 2005? It’s time to migrate to SQL 2014!
Running SQL 2005? It’s time to migrate to SQL 2014!
 
Deep Into Isolation Levels
Deep Into Isolation LevelsDeep Into Isolation Levels
Deep Into Isolation Levels
 
Mastering T-SQL Window Functions
Mastering T-SQL Window FunctionsMastering T-SQL Window Functions
Mastering T-SQL Window Functions
 
Sql server windowing functions
Sql server windowing functionsSql server windowing functions
Sql server windowing functions
 
Tutorial SAP: Instalación sap bo 4.0
Tutorial SAP: Instalación sap bo 4.0Tutorial SAP: Instalación sap bo 4.0
Tutorial SAP: Instalación sap bo 4.0
 
Leveraging memory in sql server
Leveraging memory in sql serverLeveraging memory in sql server
Leveraging memory in sql server
 
SQL Server 2012 Certifications
SQL Server 2012 CertificationsSQL Server 2012 Certifications
SQL Server 2012 Certifications
 
Sql server-dba
Sql server-dbaSql server-dba
Sql server-dba
 
Window functions with SQL Server 2016
Window functions with SQL Server 2016Window functions with SQL Server 2016
Window functions with SQL Server 2016
 
SQL Server 2014 New Features
SQL Server 2014 New FeaturesSQL Server 2014 New Features
SQL Server 2014 New Features
 
Sql Server Interview Question
Sql Server Interview QuestionSql Server Interview Question
Sql Server Interview Question
 
SQL Server Transaction Management
SQL Server Transaction ManagementSQL Server Transaction Management
SQL Server Transaction Management
 
Sql server 2008 interview questions answers
Sql server 2008 interview questions answersSql server 2008 interview questions answers
Sql server 2008 interview questions answers
 
Sql server 2012 dba online training
Sql server 2012 dba online trainingSql server 2012 dba online training
Sql server 2012 dba online training
 
Exploring Advanced SQL Techniques Using Analytic Functions
Exploring Advanced SQL Techniques Using Analytic FunctionsExploring Advanced SQL Techniques Using Analytic Functions
Exploring Advanced SQL Techniques Using Analytic Functions
 
Data Quality Services in SQL Server 2012
Data Quality Services in SQL Server 2012Data Quality Services in SQL Server 2012
Data Quality Services in SQL Server 2012
 
70-461 Querying Microsoft SQL Server 2012
70-461 Querying Microsoft SQL Server 201270-461 Querying Microsoft SQL Server 2012
70-461 Querying Microsoft SQL Server 2012
 
Interview Question and Answers: The internal interview top 10 tips
Interview Question and Answers: The internal interview top 10 tipsInterview Question and Answers: The internal interview top 10 tips
Interview Question and Answers: The internal interview top 10 tips
 

Similaire à New T-SQL Features in SQL Server 2012

Exciting Features for SQL Devs in SQL 2012
Exciting Features for SQL Devs in SQL 2012Exciting Features for SQL Devs in SQL 2012
Exciting Features for SQL Devs in SQL 2012
Brij Mishra
 

Similaire à New T-SQL Features in SQL Server 2012 (20)

Exciting Features for SQL Devs in SQL 2012
Exciting Features for SQL Devs in SQL 2012Exciting Features for SQL Devs in SQL 2012
Exciting Features for SQL Devs in SQL 2012
 
Migrating To PostgreSQL
Migrating To PostgreSQLMigrating To PostgreSQL
Migrating To PostgreSQL
 
Sql 2016 - What's New
Sql 2016 - What's NewSql 2016 - What's New
Sql 2016 - What's New
 
Presentación Oracle Database Migración consideraciones 10g/11g/12c
Presentación Oracle Database Migración consideraciones 10g/11g/12cPresentación Oracle Database Migración consideraciones 10g/11g/12c
Presentación Oracle Database Migración consideraciones 10g/11g/12c
 
Indexes overview
Indexes overviewIndexes overview
Indexes overview
 
Dan Hotka's Top 10 Oracle 12c New Features
Dan Hotka's Top 10 Oracle 12c New FeaturesDan Hotka's Top 10 Oracle 12c New Features
Dan Hotka's Top 10 Oracle 12c New Features
 
In memory databases presentation
In memory databases presentationIn memory databases presentation
In memory databases presentation
 
mongodb-aggregation-may-2012
mongodb-aggregation-may-2012mongodb-aggregation-may-2012
mongodb-aggregation-may-2012
 
SQL Server2012 Enhancements
SQL Server2012 EnhancementsSQL Server2012 Enhancements
SQL Server2012 Enhancements
 
SQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTPSQL Server 2014 In-Memory OLTP
SQL Server 2014 In-Memory OLTP
 
Cooking Cassandra
Cooking CassandraCooking Cassandra
Cooking Cassandra
 
Exploring T-SQL Anti-Patterns
Exploring T-SQL Anti-Patterns Exploring T-SQL Anti-Patterns
Exploring T-SQL Anti-Patterns
 
Pl sql best practices document
Pl sql best practices documentPl sql best practices document
Pl sql best practices document
 
A tour of Amazon Redshift
A tour of Amazon RedshiftA tour of Amazon Redshift
A tour of Amazon Redshift
 
U-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for DevelopersU-SQL - Azure Data Lake Analytics for Developers
U-SQL - Azure Data Lake Analytics for Developers
 
SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...
SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...
SQL Pass Summit Presentations from Datavail - Optimize SQL Server: Query Tuni...
 
Informatica overview
Informatica overviewInformatica overview
Informatica overview
 
Informatica overview
Informatica overviewInformatica overview
Informatica overview
 
Introduction to Amazon Athena
Introduction to Amazon AthenaIntroduction to Amazon Athena
Introduction to Amazon Athena
 
Query Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New TricksQuery Optimization with MySQL 5.6: Old and New Tricks
Query Optimization with MySQL 5.6: Old and New Tricks
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

New T-SQL Features in SQL Server 2012

  • 1. Richie Rump @Jorriss http://jorriss.net
  • 2.
  • 3. Sequences • Data Paging • Analytic Window Functions • Conversion Functions • Logical Functions • Date/Time Functions • String Functions
  • 4. • New construct to generate numeric sequences. • Ability to set min and max values • Cycle will set the current value to the min value when the max value is reached • Future values can be cached minimizing disk IO.
  • 5. • Returns metadata for the supplied SQL statement. • Useful for determining column/database information for a SQL statement or Stored Procedure.
  • 6. • If set to 0, no information is returned. • If set to 1, each query is analyzed as if it includes a FOR BROWSE option on the query. This will return base table names as the source column information. • If set to 2, each query is analyzed as if it would be used in preparing or executing a cursor. This will return view names as source column information.
  • 7. • Allows the changing of column names and data types in the resultset of a stored procedure. • Yes, you can change column names when you call a stored procedure.
  • 8. • Allows for server side paging. • Not data pages (8K of awesome) but paging like on a web page. • OFFSET AND FETCH are arguments of the ORDER BY clause • OFFSET – Number of rows to skip • FETCH – Number of rows to return
  • 9. LAG • LEAD • FIRST_VALUE • LAST_VALUE • PERCENT_RANK • CUME_DIST • PERCENTILE_CONT • PERCENTILE_DISC
  • 10. • The OVER clause determines the partitions and order of a rowset before the window function is applied. • WHAT CHU TALKING ABOUT WILLIS?
  • 11. • PARTITON BY – Similar to GROUP BY but only applies to the window function and not the entire query. • ORDER BY – Specifies the order of the rows in the partition
  • 12. • No longer need to use a self-join or CTE. • LAG: Access data from previous rows in the result set. • LEAD: Access data from future rows in the result set.
  • 13. • FIRST_VALUE: Retrieves the first value in a partition. • LAST_VALUE: Retrieves the last value in a partition.
  • 14. • Calculates a relative rank of a row. • (RANK() – 1) / (Total Rows – 1)
  • 15. • Calculates the percentage of values less than or equal to the current value in the group. • COUNT(*) OVER (ORDER BY Col1) / Total Count
  • 16. • Calculates a percentile value • Will interpolate the appropriate value • Can use to find the median – PERCENTILE_CONT(0.5) • CONT stands for continuous
  • 17. • Calculates a percentile value • Like PERCENTILE_CONT but will select a value that exists in the set. • Can use to find the median – PERCENTILE_CONT(0.5) • DISC stands for discrete distribution
  • 18. • Attempts to parse a string and convert it to a specified datatype. • Can only convert to a number or datetime • Uses the .Net CLR
  • 19. • Like PARSE but if an error occurs returns a NULL. • Still uses the .Net CLR.
  • 20. • Attempts to cast a value into a specified data type. Returns NULL if CONVERT fails.
  • 21. • Immediate If aka Inline If • Takes a boolean expression and returns one of two values. • Shorthand for CASE. • Has the same limitations as CASE – Can only be nested to 10 levels
  • 22. • Returns a value from a list based on a specified index. • If the specified index is not in the list NULL is returned. • Returns the data type based on data type precedence.
  • 23. • Returns last date of a specified month. • Can specify a month_to_add argument to increment or decrement result.
  • 24. • DATEFROMPARTS ( year, month, day) • DATETIME2FROMPARTS ( year, month, day, hour, minute, seconds, fractions, precision ) • DATETIMEFROMPARTS ( year, month, day, hour, minute, seconds, milliseconds ) • DATETIMEOFFSETFROMPARTS ( year, month, day, hour, minute, seconds, fractions, hour_offset, minute_offset, precision ) • SMALLDATETIMEFROMPARTS ( year, month, day, hour, minute ) • TIMEFROMPARTS ( hour, minute, seconds, fractions, precision )
  • 25. • Does what it says…concatenates strings together. • NULLs are automatically converted to empty strings. • Can pass other data types for concatenation.
  • 26. • Simplifies the string formatting of dates and other data types. • No more memorizing numeric predefined format values. • Returns a string. • Uses .Net CLR
  • 27. • Reduces the need to use RAISERROR in TRY/CATCH blocks. • Can provide custom error messages. • Always uses severity level 16.
  • 28.
  • 30.
  • 31. Denali T-SQL at a Glance - New and Enhanced Functions http://www.sqlmag.com/blog/puzzled-by-t-sql-blog-15/tsql/denali-tsql-glance-enhanced- functions-140785 T-SQL Improvements in SQL Server 2012 http://www.infoq.com/news/2012/03/T-SQL-2012 SQL SERVER – Denali – 14 New Functions – A Quick Guide http://blog.sqlauthority.com/2011/09/21/sql-server-denali-14-new-functions-a-quick- guide/ Performance Test of New Date Manipulation Functions (SQL Spackle) http://www.sqlservercentral.com/articles/Performance/89505/ Keyboard Shortcuts in Visual Studio 2012. Need to import settings. http://www.mssqltips.com/sqlservertip/2625/improvement-to-keyboard-shortcuts-in-sql- server-2012-management-studio/
  • 32. • MSDN: http://msdn.microsoft.com/en- us/library/ff878091.aspx • Sequence: Why they aren’t just for surrogate keys: http://blog.infoadvisors.com/index.php/2012/02/16 /new-in-sql-server-2012-sequences-why-they-arent- just-for-surrogate-keys/ • Sequence in 2012: http://www.sql-server- performance.com/2011/sequence-sql-server-2011/ • Create Sequence: http://www.dbadiaries.com/new- t-sql-features-in-sql-server-2012-create-sequence/
  • 33. • MSDN: http://msdn.microsoft.com/en- us/library/ff878602.aspx • http://blog.sqlauthority.com/2012/03/31 /sql-server-sp_describe_first_result_set- new-system-stored-procedure-in-sql- server-2012/
  • 34. • MSDN: http://msdn.microsoft.com/en- us/library/ms188332.aspx • WITH RESULT SETS http://www.dbadiaries.com/new-t-sql- features-in-sql-server-2012-with-result- sets/
  • 35. • MSDN: http://msdn.microsoft.com/en- us/library/ms188385.aspx • TSQL 2012 – OFFSET and FETCH: http://stevestedman.com/2012/04/tsql-2012- offset-and-fetch/ • OFFSET and FETCH: http://www.dbadiaries.com/new-t-sql- features-in-sql-server-2012-offset-and-fetch/
  • 36. • LAG - MSDN: http://msdn.microsoft.com/en- us/library/hh231256 • LEAD - MSDN: http://msdn.microsoft.com/en- us/library/hh213125
  • 37. • FIRST_VALUE - MSDN: http://msdn.microsoft.com/en- us/library/hh213018 • LAST_VALUE - MSDN: http://msdn.microsoft.com/en- us/library/hh231517
  • 38. • MSDN: http://msdn.microsoft.com/en- us/library/hh213573.aspx • Introduction to PERCENT_RANK(): http://blog.sqlauthority.com/2011/11/18/sql- server-introduction-to-percent_rank-analytic- functions-introduced-in-sql-server-2012/
  • 39. • MSDN: http://technet.microsoft.com/en- us/library/hh231078.aspx • Introduction to CUME_DIST: http://blog.sqlauthority.com/2011/11/08/sql- server-introduction-to-cume_dist-analytic- functions-introduced-in-sql-server-2012/
  • 40. • PERCENTILE_CONT - MSDN: http://msdn.microsoft.com/en- us/library/hh231473.aspx • Introduction to PERCENTILE_CONT: http://blog.sqlauthority.com/2011/11/20/sql- server-introduction-to-percentile_cont-analytic- functions-introduced-in-sql-server-2012/ • What exactly does PERCENTILE_CONT do? http://www.sqlskills.com/BLOGS/BOBB/post/Wh at-exactly-does-PERCENTILE_CONT-do- anyhow.aspx
  • 41. • PERCENTILE_DISC - MSDN: http://msdn.microsoft.com/en- us/library/hh231327 • Introduction to PERCENTILE_DISC: http://blog.sqlauthority.com/2011/11/22/sql- server-introduction-to-percentile_disc- analytic-functions-introduced-in-sql-server- 2012/
  • 42. • Difference between PARSE(), TRY_PARSE(), TRY_CONVERT(): http://blog.sqlauthority.com/2011/09/09/sql-server- denali-conversion-function-difference-between-parse- try_parse-try_convert/ • PARSE - MSDN: http://msdn.microsoft.com/en- us/library/hh213316.aspx • TRY_PARSE - MSDN: http://msdn.microsoft.com/en- us/library/hh974669 • TRY_CONVERT - MSDN: http://msdn.microsoft.com/en-us/library/hh230993
  • 43. • MSDN: http://msdn.microsoft.com/en- us/library/hh213574.aspx
  • 44. • MSDN: http://msdn.microsoft.com/en- us/library/hh213019 • CHOOSE() – A Quick Introduction: http://blog.sqlauthority.com/2011/09/11/sql- server-denali-logical-function-choose-a-quick- introduction/
  • 45. • MSDN: http://msdn.microsoft.com/en- us/library/hh213020.aspx • EOMONTH() – A Quick Introduction: http://blog.sqlauthority.com/2011/09/20/sql- server-denali-date-and-time-functions- eomonth-a-quick-introduction/
  • 46. • A Quick Introduction: http://blog.sqlauthority.com/2011/09/19/sql- server-denali-date-and-time-functions- datefromparts-datetimefromparts- datetime2fromparts-timefromparts- smalldatetimefromparts- datetimeoffsetfromparts-a-quick-introduc/
  • 47. • MSDN: http://msdn.microsoft.com/en- us/library/hh231515.aspx
  • 48. • MSDN: http://msdn.microsoft.com/en- us/library/hh213505.aspx • New SQL Server Function to Format Dates: http://www.mssqltips.com/sqlservertip/2655/ne w-sql-server-function-to-format- dates/?utm_source=dailynewsletter&utm_mediu m=email&utm_content=headline&utm_campaig n=2012427 • Custom Numeric Formats - http://msdn.microsoft.com/en- US/library/0c899ak8.aspx#SpecifierD
  • 49. • http://www.dbadiaries.com/new-t-sql- features-in-sql-server-2012-throw/

Notes de l'éditeur

  1. Data Paging – OFFSET and FETCHAnalytic Window Functions – LAG, LEAD, FIRST_VALUE, LAST_VALUE, PERCENT_RANK, CUME_DIST, PERCENTILE_CONT, PERCENTILE_DISC Conversion Functions – PARSE, TRY_PARSE, TRY_CONVERTLogical Functions – IIF, CHOOSEDate/Time Functions – EOMONTH, FROMPARTSString Functions – CONCAT, FORMATError Handling - THROW