SQL Server ed ALM su database


Il blog di Alessandro Alpi
Archivio Posts
Anno 2018

Anno 2017

Anno 2016

Anno 2015

Anno 2014

Anno 2013

Anno 2012

Anno 2011

Anno 2010

Anno 2009

Anno 2008

Anno 2007

Anno 2006

SQL Server Denali - Transact-SQL - Throw ed eccezioni

Continuiamo la carrellata delle nuove funzionalità a livello di programmabilità di SQL Server 2012.
Parliamo della gestione delle eccezioni.

Come molti di voi sapranno, la "try.. catch" è stata introdotta con SQL Server 2005.
Diciamo che per chi è abituato a scrivere anche in .net (come il sottoscritto ) non si è trattato proprio di una grande implementazione per gestire le eccezioni a database. 
Certo, risolve parte dei problemi che la precedente gestione creava in termini di coding, ma di certo non è ottimale (dipende anche da quanto si vuole intervenire a database per gestioni di questo tipo, e ci sono varie scuole di pensiero a riguardo).

Al fine di arricchire il costrutto esistente è stata creata una nuova parola chiave: THROW

Essa ha la funzionalità di rilanciare l'eccezione al chiamante, un po' come si faceva con la RAISERROR, anche se vi sono alcune differenze, come indicato nella tabella di seguito:


La THROW può essere utilizzata quindi come_
- una semplice raise di un errore (simile alla RAISERROR ma senza tener conto della sys.messages, che non è poco, non ci sono dipendenze con oggetti di sistema)
- come la raise di un'eccezione gestita in un blocco CATCH (ovvero come una throw in .net)
- come la raise di un errore con customizzazione messaggio di ritorno (usando la FORMATMESSAGE)


Stay Tuned! 





Categoria: SQL Server 2012
venerdì, 10 feb 2012 Ore. 16.39

Messaggi collegati


Statistiche
  • Views Home Page: 599.571
  • Views Posts: 1.065.587
  • Views Gallerie: 637.597
  • n° Posts: 484
  • n° Commenti: 273



















Copyright © 2002-2007 - Blogs 2.0
dotNetHell.it | Home Page Blogs
ASP.NET 2.0 Windows 2003