T-Sql

sp_alter_column - La stored procedure per modificare una colonna!

Sergio Govoni

Introduzione

Sarà successo anche a voi di dover modificare il tipo di dato di una colonna presente da tempo in una tabella di un database SQL Server e probabilmente vi sarete scontrati con l’errore 5074 che segnala l’impossibilità di modificare la colonna a causa della presenza di oggetti collegati come Primary Key, Foreign Key, Indici, Vincoli (di univocità e non), Statistiche, ecc..

Ecco un esempio dell’errore 5074:

Msg 5074, Level 16, State 1, Line 1135 - The object 'objectname' is dependent on column 'Columnname'.

String or Binary data would be truncated: replacing the infamous error 8152 ... also in SQL Server 2017

Pasquale Ceglie

Come già annunciato allo scorso Ignite, una delle nuove (tra le tante) feature di SQL Server 2019 accolta con ovazione dei presenti è la possibilità di ottenere informazioni più complete rispetto al tanto odiato messaggio

La buona notizia è che è possibile abilitare la stessa funzionalità anche su SQL Server 2017 (e con la SP2 su SQL Server 2016) installando la CU12 e abilitando trace flag 460.

Qui trovate tutti i dettagli.

Statistiche di utilizzo e performance delle viste in un database SQL Server

Sergio Govoni

Le performance di una soluzione database sono spesso oggetto di diatriba tra chi fornisce la soluzione e chi la personalizza. Scrivere codice T-SQL ottimizzato, in grado di scalare all’aumentare dei dati e degli utenti, non è affatto semplice e quando la complessità aumenta, le attività di manutenzione del codice diventano difficili da attuare anche per l’autore stesso.

In questo articolo, condivido la metodologia di tuning e alcuni script che utilizzo per ottenere informazioni sulle performance delle query che utilizzano le viste presenti nel database oggetto dell’analisi. La presenza di viste nidificate contenenti query non ottimizzate può diventare oggetto di analisi specifica, gli script contenuti in questo articolo hanno l’obiettivo di fornire alcuni indicatori sull’utilizzo e sulle performance delle viste di un DB.

PASSGIVC - TSQL Advanced for Grouping and Windowing

Sergio Govoni

Il prossimo webinar del PASS Italian Virtual Chapter è programmato per mercoledì 21 marzo 2018 alle ore 18:00.

Andrea Martorana Tusa (@bruco441) ci spiegherà come utilizzare il linguaggio T-SQL in modo avanzato per effettuare operazioni di grouping e utilizzare le funzioni di windowing, nel webinar dal titolo “T-SQL advanced: Grouping and Windowing”.

Questo è l’abstract:

Lo scopo di questa sessione è esplorare le possibilità offerte del linguaggio T-SQL in termini di aggregazione e calcolo dei dati. C’è molto di più della sola clausola GROUP BY! Con le funzioni di aggregazione e di ranking, si possono calcolare direttamente nella stessa query, totali parziali, totali complessivi, si possono trovare intervalli in serie, selezionare l’ultimo valore non-null, ecc. Le funzioni di windowing si applicano invece ad un set di righe delimitato dalla clausola OVER (una “window” appunto). Le funzioni di windowing non effettuano l’aggregazione del gruppo a livello di riga e non nascondono i dettagli. Così è possibile mostrare dei dati di dettaglio e dei totali nella stessa query. La sessione è basata principalmente su un copioso numero di demo, che consentiranno di esplicitare al meglio i concetti introdotti. Per ogni soluzione, verrà anche valutato l’impatto in termini di performance.

Esempi di SQL Graph Database su GitHub

Sergio Govoni

SQL Server offre da sempre gli strumenti per gestire i dati gerarchici e le relazioni tra le entità. A volte, però, le relazioni tra le entità possono diventare complesse. Pensiamo ad una relazione molti-a-molti, i database relazionali non dispongono di soluzioni native per questo tipo di legame, che viene comunemente implementato con una tabella di associazione.

SQL Server 2017, grazie all’introduzione di Graph Database, permette di esprimere certi tipi di query più facilmente rispetto ad un database relazionale puro.