Archive for the ‘sql server’ Tag

Contare il numero di campi di una tabella SQL Server

A volte può essere utile conoscere il numero di campi di una tabella di un nostro DB su SQL SERVER. Senza perder tempo a contare i campi a mano (cosa spesso complicata quando la tabella è particolarmente ampia) è possibile utilizzare le tabelle di sistema per farci restituire tale valore tramite una query. E’ sufficiente interrogare le tabelle sysobjects e syscolumns del nostro db attraverso il seguente codice SQL:

use nome_del_database

SELECT     COUNT(*) AS Numero_campi_della_tabella
FROM         dbo.syscolumns INNER JOIN
                      dbo.sysobjects ON dbo.syscolumns.id = dbo.sysobjects.id
WHERE     (dbo.sysobjects.name = ‘nome_della_tabella‘)

Tale interrogazione funziona anche su SQL Server 2005 in cui, anche se alcune tabelle di sistema sono state sostituite, sono presenti le corrispondenti query di back-compatibility

Annunci

Pivot Table in SQL Server/1

La creazione di Tabelle Pivot in SQL Server non è mai stato un compito particolarmente agevole; fino alla versione 2000 l’unica possibilità era quella di utilizzare le istruzioni T-SQL case-when con la funzione di aggregazione GROUP BY, mentre dalla versione 2005 è stata introdotta la clausola PIVOT che, se non altro, evita la necessità di indicare i campi da aggregare.
Per velocizzare il lavoro, ho creato una classe C# (Clicca qui per scaricarla) che, a partire da una connessione SQLConnection e da una serie di parametri specifici (campi da inserire sulle righe, campo da inserire sulle colonne, tipo di valore da aggregare), restituisce la stringa T-SQL in grado di visualizzare la tabella pivot richiesta. Tale stringa non utilizza l’istruzione PIVOT ed è pertanto utilizzabile anche con le versioni precedenti di SQL Server. Per creare il risultato, la classe in C# utilizza la classe in VB.NET per il parsing delle stringhe SQL che ho presentato in un post precedente; quindi, è necessario scaricare anch’essa, creare la relativa dll e utilizzarne il riferimento.