T-Sql

About WITH RESULT SETS clause (T-SQL) in SQL Server Code-Name "Denali"

Sergio Govoni

In questo articolo parleremo della nuova clausola WITH RESULT SETS che sarà possibile utilizzate con il comando EXECUTE (T-SQL) a partire dalla prossima versione di SQL Server, oggi in CTP1 con il Code-Name “Denali”.

La nuova clausola WITH RESULT SETS, applicabile al comando EXECUTE, permette di ri-definire (cambiare) il nome e il tipo di dato per ogni colonna presente nel result set del comando EXECUTE (che ha invocato ad esempio una stored procedure).

About SEQUENCE (T-SQL) in SQL Server Code-Name "Denali"

Sergio Govoni

In questo articolo parleremo di un nuovo oggetto (user-defined schema-bound object) che sarà possibile utilizzare nell’implementazione di un DB, a partire dalla prossima versione di SQL Server, oggi in CTP1 con il Code-Name “Denali”.

Parleremo di SEQUENCE, un nuovo oggetto, in grado di generare una sequenza di valori numerici in funzione delle specifiche definite in fase di creazione. La sequenza di valori numerici potrà essere generata con ordinamento crescente o decrescente partendo dal valore minimo o dal valore massimo (count-down), i valori numerici della sequenza potranno essere ripetuti in modo ciclico una volta raggiunto il limite inferiore o superiore.

SQL Server Team-based Development

Sergio Govoni

Dal sito Red-Gate è possibile scaricare gratuitamente l’eBook: SQL Server Team-based Development degli autori Phil Factor, Grant Fritchey, Alex Kuznetsov e Mladen Prajdic.

L’eBook spiega come utilizzare in modo congiunto Script, SQL Server Tools e alcuni toolbelt di Red Gate per implementare applicazioni database lavorando in team. Il live motive è quello di ricondurre un progetto d’implementazione database ad un “normale” progetto di sviluppo… utilizzando gli strumenti che SQL Server e Red Gate mettono a disposizione.

Worst practices: cyclic-drop and create a temporary column

Sergio Govoni

La vista di sistema sys.columns, come citano i BOL, restituisce una riga per ogni colonna di un oggetto contenente colonne, ad esempio viste o tabelle. I tipi di oggetti che possono contenere colonne sono elencati di seguito:

  • Funzioni assembly con valori di tabella

  • Funzioni SQL inline con valori di tabella

  • Tabelle interne

  • Tabelle di sistema

  • Funzioni SQL con valori di tabella

  • Tabelle utente

  • Viste

In particolare la colonna column_id della vista sys.columns espone l’identificativo (ID) univoco assegnato ad ogni colonna presente all’interno di un oggetto, che da questo momento in poi ammettiamo essere una tabella.

Oggetti che dipendono da una tabella: DROP e ADD FOREIGN KEY CONSTRAINT

Sergio Govoni

Ci si può trovare nella situazione di dover eliminare e ricreare (successivamente) le dipendenze (FOREIGN KEY) da una tabella alterando gli oggetti che dipendono da essa.

Pensiamo, ad esempio, alla necessità di eliminare e ricreare una tabella che ha integrità referenziale con altre, uno degli step necessari è appunto l’eliminazione delle dipendenze (FOREIGN KEY) sugli oggetti che dipendono dalla tabella da ricreare.

Il seguente comando T-SQL permette di individuare facilmente i comandi di eliminazione e ripristino delle FOREIGN KEY sulle tabelle che dipendono dalla tabella citata nella clausola WHERE del comando.