Publications

SQL Server 2008 Service Pack 2 RTM

Sergio Govoni

E’ stato rilasciato il service pack 2 RTM di SQL Server 2008.

Trovate i dettagli in questo post: http://blogs.technet.com/b/dataplatforminsider/archive/2010/09/29/sql-server-2008-sp2-is-available-for-download-today.aspx

Attenzione! Il Service Pack 2 contiene i Cumulative Update post SP1 fino al numero 8. Se avete installato dei CU successivi a questo, l’installazione della SP2 potrebbe rimuoverli.

I link ai download singoli sono i seguenti:

Primi e Ultimi Trigger

Sergio Govoni

Qualora una tabella avesse molteplici trigger AFTER sullo stesso tipo di comando INSERT, UPDATE o DELETE, vi siete mai chiesti quale fosse l’ordine di attivazione?

Scenario

Ipotizziamo di utilizzare la tabella dbo.Product su cui insistono alcuni (tre) trigger AFTER di tipo INSERT. Con il seguente frammento di codice T-SQL eseguiamo il setup della tabella dbo.Product sul database di esempio AdventureWorks.

MERGE and Triggers

Sergio Govoni

Abbiamo parlato del comando MERGE nell’articolo MERGE Statements in Action, ora invece tratteremo un approfondimento che ci permetterà di comprendere le regole di attivazione degli eventuali trigger presenti nella tabella target, oggetto delle operazioni DML specificate nelle clausole del comando MERGE.

L’esecuzione delle azioni specificate nelle clausole del comando MERGE scatena l’attivazione dei trigger come una qualsiasi operazione DML. Esiste però una particolarità interessante: verrà scatenata una sola occorrenza di ogni trigger, in risposta al comando MERGE, anche in presenza di esecuzioni multiple della stessa azione da parte di quest’ultimo. Come sempre, i trigger avranno accesso alle tabelle virtuali inserted e deleted che conterranno tutte le righe modificate dallo statement.

FILESTREAM Attribute

Sergio Govoni

Tra le numerose novità introdotte con SQL Server 2008 troviamo anche il nuovo attributo FILESTREAM che integra l’intelligenza del query processor di SQL Server con l’immediatezza del file system per la memorizzazione di file di grandi dimensioni.

Quante volte ci siamo chiesti dove fosse meglio memorizzare file di grandi dimensioni, come ad esempio file video, multimediali o semplicemente documenti nei formati Microsoft Office. Fondamentalmente due le possibili soluzioni: nel file system oppure all’interno del DB, in colonne di tipo BLOB (Binary Large Object). Da qui l’analisi dei vantaggi e degli svantaggi di ognuna delle due soluzioni, ma in entrambi i casi, comunque, abbiamo dovuto accettare gli svantaggi della soluzione scelta. Probabilmente, il più delle volte abbiamo scelto di tenere fuori dal DB i dati non strutturati per evitare ad esempio file di backup di dimensioni elevate, a discapito però della semplicità di gestione e accettando limitazioni nelle funzionalità di flusso.

Table-Valued Parameters in Action

Sergio Govoni

SQL Server 2008 recepisce una richiesta che gli sviluppatori avevano inoltrato a Microsoft già da parecchio tempo, ossia la possibilità di passare a stored procedure e function definite dall’utente, parametri di tipo tabella ovvero Table-Valued Parameters (TVPs).

Nelle precedenti versioni di SQL Server, la necessità di passare una struttura dati come parametro ad una stored procedure o ad una function veniva spesso risolta con un workaround che consiste nel passare parametri di tipo XML o Comma Separeted String. Queste soluzioni, tipicamente, richiedono però la stesura di parecchio codice T-SQL che difficilmente potrà scalare in modo ottimizzato in funzione della quantità dei dati trattati.