Come credo alla maggior parte di voi, spesso, anche a me capita di dover mantenere codice scritto da qualcun altro. Uno degli aspetti che (ri)trovo con una certa frequenza è che, spesso, non prestiamo attenzione a come scriviamo le nostre query, sottovalutando l’impatto che queste possono avere sul nostro sistema. Proprio recentemente mi sono imbattuto in una serie di batch (dalle …
Leggi »Come calcolare il check-digit di un barcode in T-SQL
Chi ha avuto l’opportunità di sviluppare software per la movimentazione delle merci, sa che per identificare, memorizzare e gestire in modo efficiente la movimentazione dei prodotti all’interno di un magazzino, è necessario adottare un sistema di movimentazione basato su codici a barre. Un codice a barre è la rappresentazione grafica di una sequenza di numeri e altri simboli. La rappresentazione …
Leggi »TOP(n) WITH TIES, nuova feature? No, é sempre esistita!
C’è ancora chi si meraviglia davanti all’opzione WITH TIES. Molti non sanno che esiste o ne sottovalutano l’utilità. Consideriamo la query SELECT TOP 3 Name, ListPrice FROM SalesLT.Product ORDER BY ListPrice ASC; Questa query ritornerà i primi 3 articoli ordinati per ListPrice crescente. L’opzione WITH TIES indica che, invece di restituire solo il numero richiesto di righe, la query restituirà …
Leggi »Uso “nascosto” del tempdb
Qualche settimana fa, mentre ero al lavoro, mi sono ritrovato a dover risolvere un problema apparentemente non molto strano, ma che tuttavia nasconde qualche retroscena interessante. I fatti sono stati più o meno questi: Circa a metà mattinata mi è stato segnalato un problema di prestazioni su uno dei sistemi che abbiamo in gestione nel nostro team di lavoro; dopo alcuni semplici controlli è stato …
Leggi »Usare json su SQLServer 2005, 2008, 2012 e 2014 .. è possibile!
Vedere il supporto nativo di JSON su SQLServer 2016 (e anche su Azure SQLDatabase) mi ha fatto pensare che magari era possibile averlo in forma semplificata anche su versioni precedenti. Tutto è nato dalla necessità di gestire un flusso di dati con una Stored Procedure in arrivo da una WebAPI. Inizialmente la WebAPI, dopo aver fatto gli opportuni controlli logici …
Leggi »Trigger in SQL Server: FAQ e Best practices
I Trigger sono spesso motivo di discordia tra sviluppatori e DBA, tra chi personalizza una soluzione standard e chi la fornisce, tra clienti e software vendor. Sembrano facili da scrivere, ma scrivere Trigger efficienti non è affatto semplice e quando la loro complessità aumenta, possono presentare effetti collaterali in grado di confondere persino l’autore. Tuttavia, per quanti difetti possano avere, …
Leggi »Come effettuare il Debug di un Trigger (T-SQL)
I più importanti linguaggi di programmazione hanno strumenti di debug integrati direttamente nell’IDE. Il debugger ha tipicamente un’interfaccia grafica che consente di esaminare i valori che assumono le variabili durante l’esecuzione, il flusso del programma (step-by-step) e permette di definire punti di interruzione in corrispondenza dei quali fermare l’esecuzione del programma. Ogni sviluppatore ama gli strumenti di debug, specialmente quando deve …
Leggi »Qual è la tabella più grande nel DB corrente?
Può succedere di avere la necessità di sapere quale sia la tabella più grande (in termini di spazio occupato), nel database su cui si sta lavorando. Ci sono diversi modi per rispondere a questa domanda, si potrebbe utilizzare il report standard Disk Usage by Top Table fornito da SQL Server Management Studio (SSMS) oppure, se si volesse effettuare l’operazione attraverso T-SQL, …
Leggi »AT TIME ZONE (Transact-SQL)
Si applica a: Azure SQL Database, SQL Server 2016 Preview Converte un inputdate al valore datetimeoffset corrispondente nel fuso orario di destinazione. Se inputdate viene fornito senza le informazioni di offset, la funzione applica l’offset del fuso orario partendo dal presupposto che il valore inputdate viene fornito nel fuso orario di destinazione. Se inputdate viene fornito come valore datetimeoffset, allora la …
Leggi »DROP IF EXISTS
SQL Server 2016 ha tante novità e le più grosse sono ormai di pubblico dominio e avremo modo di parlarne in modo approfondito sicuramente per i prossimi mesi. Ci sono alcune migliorie molto più piccole che sono un po’ passate in sordina, ma che sono comunque molto utili ed interessanti per chi lavora con il prodotto tutti i giorni. Una di …
Leggi »