T-Sql

Svuotare un database: un meccanismo automatico

Davide Mauri

Può capitare, per diversi motivi, di avere la necessità di svuotare un database per riportarlo allo stato “iniziale”.

Per stato “iniziale” intendo il momento dell’installazione: nessuna riga (se non in eventuali tabelle che devono essere già popolate) e con i contatori delle colonne autoincrementanti a zero.


/*
Meccanismo di delete automatico
*/
set nocount on
print ‘*** delete’

Percorso formativo TechNet su SQL Server

Davide Mauri

I percorsi formativi TechNet sono delle raccolte di articoli e Webcast in italiano selezionati dagli ITPro Evangelist di Microsoft, che permettono ai professionisti IT di familiarizzare con le nuove tecnologie in arrivo. Consulta queste risorse su SQL Server, e scopri le caratteristiche del software Microsoft per la gestione dei database aziendali.

Deframmentazione indici

Sergio Govoni

Abbiamo trattato il problema della frammentazione degli indici nei post Index Fragmentation e Index Fragmentation (Parte 2) definendo la stored procedure USP_ExecReorgRebuildIndex() in grado di eseguire la deframmentazione degli indici con avg_fragmentation_in_percent maggiore del 10% in un database SQL Server 2005.

La DMV sys.dm_db_index_physical_stats non è presente nella versione 2000 di SQL Server (di cui esistono numerose installazioni attive in produzione) da qui la non compatibilità della stored procedure USP_ExecReorgRebuildIndex() su SQL Server 2000.

Gestire date ed orari con SQL Server con SQL Server 2000 e 2005

Davide Mauri

Utilizzo corretto del tipo di dato datetime o smalldatetime

Uno dei problemi che più affligge chi si avvicina a SQL Server è l’utilizzo delle date.

Il campo datetime di SQL (oppure il più piccolo smalldatetime) sembra che a volte si comporti in modo misterioso e non sempre sembra essere chiaro come interpreta i valori che gli immettiamo: il formato è giorno-mese-anno, oppure mese-giorno-anno, oppure altro ancora?

An Introduction to New T-SQL Programmability Features in SQL Server 2008

Davide Mauri

Un bellissimo whitepaper di Itzik Ben-Gan sulle nuove feature legate a T-SQL di SQL Server 2008

http://msdn.microsoft.com/en-gb/library/cc721270(SQL.100).aspx

Questo l’indice dei contenuti:

  • Transact-SQL Delighters.
  • Declare and Initialize Variables
  • Compound Assignment Operators
  • Table Value Constructor Support through the VALUES Clause.
  • Enhanced CONVERT Function.
  • Date and Time Data Types.
  • New Data Types
  • New and Enhanced Functions
  • Large UDTs.
  • HIERARCHYID Data Type.
  • Indexing Strategies
  • Inserting New Nodes
  • Querying the Hierarchy.
  • Other Supported Methods
  • Table Types and Table-Valued Parameters.
  • Table Types
  • Table-Valued Parameters
  • MERGE Statement
  • Grouping Sets.
  • GROUPING SETS, CUBE, and ROLLUP Subclauses
  • Grouping Sets Algebra.
  • GROUPING_ID Function.
  • DDL Trigger Enhancements.
  • Sparse Columns.
  • Filtered Indexes and Statistics.
  • SQL/CLR Enhancements.
  • Enhancements to User-Defined Aggregates
  • Enhancements to Table-Valued Functions
  • Object Dependencies.
  • Change Data Capture.
  • Collation Alignment with Windows

PIVOT dinamico in SQL Server 2005

Davide Mauri

La funzione PIVOT di SQL Server 2005 non permette di utilizzare una variabile per la definizione delle colonne da creare come risultato dell’operazione di pivoting.

E’ possibile superare questo limite utilizzando del codice SQL dinamico, creando al volo la query da eseguire ed mandandola in esecuzione con il comando sp_executesql.