Publications
E' possibile disabilitare un Trigger dall'interno di un altro?
Quale effetto produce l’esecuzione di un comando DDL per disabilitare un trigger presente sulla stessa tabella su cui è presente il trigger che lo invoca ?
Sembra un gioco di parole, ma chi ha realizzato il trigger che ho controllato poco tempo fa non si è posto questa domanda.
La segnalazione è arrivata da alcuni utenti dell’ufficio commerciale, dopo un intervento tecnico hanno iniziato a lamentare pesanti rallentamenti proprio quando era in corso l’inserimento di uno o più ordini di vendita.
ORDER BY nella clausola UNION in SQL Server 2000 e 2005 (o successivi)
Con SQL Server 2000, vi siete mai imbattuti nel messaggio di errore numero 104 ?
Server: Msg 104, Level 15, State 1, Line 1
ORDER BY items must appear in the select list if the statement contains a UNION operator.
Questo messaggio viene restituito quando si utilizza l’operatore UNION per combinare i risultati di due o più istruzioni SELECT nelle cui dichiarazioni è presente una clausola ORDER BY e le colonne citate nell’ordinamento non sono parte (anche) della SELECT.
CLR User-Defined Function for Check Constraint
Come possiamo scrivere l’espressione logica che verifica un vincolo di tipo CHECK ? Possiamo farlo con:
- T-SQL
- User-Defined Function
- CLR User-Defined Function
Abbiamo apprezzato l’utilizzo del linguaggio CLR nel post SQLCLR instead of OLE Automation (sp_OA* method), ora vediamo come è possibile implementare e fare il deploy di una funzione CLR da utilizzare per verificare l’espressione logica di un vincolo CHECK, definito ad esempio su una colonna di tipo float.
Not a Number Value in Float Field
In questo articolo parleremo della situazione che si verifica quando nel DB vengono memorizzati dei valori numerici, in colonne di tipo float, che però non possono più essere letti correttamente.
Tutto è iniziato dalla segnalazione di un utente che lamentava un errore in fase di estrazione dei dati di fatturato. La versione di SQL Server in produzione è la 2000 (SP4 – versione 8.00.2039) e l’errore restituito durante l’esecuzione della query è: “An error occurred while executing batch. Error message is: Overflow aritmetico.”
Filtered Indexes
Con SQL Server 2008 fanno il loro debutto gli indici e le statistiche filtrare; sono le strutture che conosciamo già, a cui però viene applicato un criterio di filtro. In questo articolo parleremo degli indici filtrati cercando di capire quando la loro applicazione può migliorare le performance delle query.
Il comando CREATE INDEX può ora accettare la clausola WHERE utilizzata per specificare il criterio di filtro.
SQLCLR instead of OLE Automation (sp_OA* method)
Riprendo il tema relativo all’aggiornamento dei dati esposti su una tabella pivot di un foglio di lavoro Microsoft Excel.
Abbiamo analizzato una possibile soluzione basata sull’utilizzo di OLE Automation (sp_OA*) con questo post Aggiornare una tabella pivot di Microsoft Excel. Vediamo ora com’è possibile raggiungere lo stesso risultato utilizzando però il linguaggio CLR.
Indici doppi: un sovraccarico inutile
Possiamo facilmente immaginare l’inefficienza introdotta dalla doppia indicizzazione (ugualmente ordinata) di un attributo: SQL Server dovrà mantenere aggiornati due indici, organizzati in strutture B-Tree letteralmente identiche, senza trarre alcun beneficio da una delle due.
La stored procedure dbo.usp_drop_double_more_index, definita di seguito, permette di individuare ed eliminare i casi di doppia (tripla, ecc…) indicizzazione dei medesimi attributi.