<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tips-Tricks on UGISS</title>
    <link>https://1ab09184.ugiss-website.pages.dev/tags/tips-tricks/</link>
    <description>Recent content in Tips-Tricks on UGISS</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Sat, 12 Apr 2025 00:00:00 +0200</lastBuildDate>
    <atom:link href="https://1ab09184.ugiss-website.pages.dev/tags/tips-tricks/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Unicità condizionata, NULL e ANSI_NULLS: Soluzioni T-SQL senza trigger</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2025/04/12/unicita-condizionata-null-e-ansi_nulls-soluzioni-t-sql-senza-trigger/</link>
      <pubDate>Sat, 12 Apr 2025 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2025/04/12/unicita-condizionata-null-e-ansi_nulls-soluzioni-t-sql-senza-trigger/</guid>
      <description>&lt;p&gt;Recentemente mi sono trovato ad affrontare un caso interessante relativo alla gestione di un vincolo UNIQUE con alcune particolarità su una tabella di un database SQL Server. La richiesta è stata quella controllare che i valori inseriti o modificati in una colonna siano unici, permettendo però NULL multipli.&lt;/p&gt;&#xA;&lt;p&gt;Consideriamo, a titolo di esempio semplificato, lo schema della tabella dbo.EmailTable. La tabella memorizza alcuni attributi di una anagrafica contatti tra cui il Nome, il Cognome e l&amp;rsquo;Email. L’attributo Email non è obbligatorio ma quando presente deve essere univoco. L&amp;rsquo;assenza dell&amp;rsquo;attributo viene gestita con un NULL.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Modalità di elaborazione query e indici columnstore</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2022/02/16/modalita-di-elaborazione-query-e-indici-columnstore/</link>
      <pubDate>Wed, 16 Feb 2022 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2022/02/16/modalita-di-elaborazione-query-e-indici-columnstore/</guid>
      <description>&lt;p&gt;In questo articolo verranno trattati i due metodi di elaborazione delle query conosciuti come &lt;strong&gt;Row mode execution&lt;/strong&gt; e &lt;strong&gt;Batch mode execution&lt;/strong&gt; per SQL Server 2019. Verrà inoltre descritto un meccanismo per attivare Batch mode execution su SQL Server 2017 anche quando non si possono creare indici columnstore &amp;ldquo;effettivi&amp;rdquo;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;row-mode-execution&#34;&gt;Row mode execution&lt;/h3&gt;&#xA;&lt;p&gt;Row mode execution è un metodo di elaborazione delle query utilizzato con le tabelle tradizionali disk-based, in cui i dati vengono archiviati in formato riga. Le tabelle che utilizzano questo tradizionale formato di archiviazione vengono anche dette &amp;ldquo;rowstore table&amp;rdquo;. Quando una query viene eseguita e accede ai dati archiviati in formato riga, gli operatori previsti nel piano di esecuzione leggono ogni riga richiesta dalla query. Da ogni riga letta, SQL Server recupera quindi le colonne necessarie, specificate nell&amp;rsquo;istruzione SELECT, in un predicato di JOIN, in un predicato di filtro, ecc..&lt;/p&gt;</description>
    </item>
    <item>
      <title>ALTER COLUMN con #sqlcmdcli</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2021/12/31/alter-column-con-sqlcmdcli/</link>
      <pubDate>Fri, 31 Dec 2021 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2021/12/31/alter-column-con-sqlcmdcli/</guid>
      <description>&lt;p&gt;Quante volte avete avuto la necessità di modificare il tipo di dato di una colonna da cui dipendono altri oggetti del database SQL Server?&lt;/p&gt;&#xA;&lt;p&gt;Se avete avuto questa necessità vi sarete scontrati con l&amp;rsquo;errore numero 5074 che segnala l&amp;rsquo;impossibilità di modificare tipo di dato e proprietà di una colonna a causa della presenza di oggetti collegati come Indici, Vincoli di univocità, Statistiche, ecc..&lt;/p&gt;</description>
    </item>
    <item>
      <title>String or Binary data would be truncated: replacing the infamous error 8152 ... also in SQL Server 2017</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2018/12/17/string-or-binary-data-would-be-truncated-replacing-the-infamous-error-8152-also-in-sql-server-2017/</link>
      <pubDate>Mon, 17 Dec 2018 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2018/12/17/string-or-binary-data-would-be-truncated-replacing-the-infamous-error-8152-also-in-sql-server-2017/</guid>
      <description>&lt;p&gt;Come già annunciato allo scorso Ignite, una delle nuove (tra le tante) feature di SQL Server 2019 accolta con ovazione dei presenti è la possibilità di ottenere informazioni più complete rispetto al tanto odiato messaggio&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://1ab09184.ugiss-website.pages.dev/2018/12/17/string-or-binary-data-would-be-truncated-replacing-the-infamous-error-8152-also-in-sql-server-2017/images/trunc_error.png&#34;&gt;&lt;img src=&#34;https://1ab09184.ugiss-website.pages.dev/2018/12/17/string-or-binary-data-would-be-truncated-replacing-the-infamous-error-8152-also-in-sql-server-2017/images/trunc_error.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;La buona notizia è che è possibile abilitare la stessa funzionalità anche su &lt;strong&gt;SQL Server 2017&lt;/strong&gt; (e con la SP2 su SQL Server 2016) installando la &lt;strong&gt;CU12&lt;/strong&gt; e abilitando &lt;strong&gt;trace flag 460.&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Missing Index... Cache</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2018/03/15/missing-index-cache/</link>
      <pubDate>Thu, 15 Mar 2018 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2018/03/15/missing-index-cache/</guid>
      <description>&lt;p&gt;Qualche settimana fa un collega mi ha sottoposto un quesito la cui risposta coinvolge alcuni concetti molto interessanti. La domanda più o meno era:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;em&gt;SQL Server mi dice che manca un indice, l&amp;rsquo;ho creato. Perchè eseguendo una query su sys.dm_db_missing_index_details trovo ancora l&amp;rsquo;indice come mancante? Come dico a SQL di aggiornare la DMV?&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quando importando un database SQL Azure su una istanza On-Prem non va proprio tutto bene</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2018/01/25/quando-importando-un-database-sql-azure-su-una-istanza-on-prem-non-va-proprio-tutto-bene/</link>
      <pubDate>Thu, 25 Jan 2018 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2018/01/25/quando-importando-un-database-sql-azure-su-una-istanza-on-prem-non-va-proprio-tutto-bene/</guid>
      <description>&lt;p&gt;Se avete abilitato &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/sql-database/sql-database-auditing&#34;&gt;Sql Server Auditing&lt;/a&gt; su un database di SQL Azure, dopo averlo &lt;a href=&#34;https://docs.microsoft.com/en-us/azure/sql-database/sql-database-export&#34;&gt;esportato&lt;/a&gt; in .bacpac, se provate ad importarlo sulla vostra istanza in locale vi troverete di fronte al seguente messaggio: Error SQL72014: .Net SqlClient Data Provider: Msg 33161, Level 15, State 1, Line 1 Database master keys without password are not supported in this version of SQL Server. Error SQL72045: Script execution error. The executed script: CREATE MASTER KEY;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Conversioni implicite: cosa sono e che impatto hanno sulle nostre query</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2017/09/28/conversioni-implicite-cosa-sono-e-che-impatto-hanno-sulle-nostre-query/</link>
      <pubDate>Thu, 28 Sep 2017 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2017/09/28/conversioni-implicite-cosa-sono-e-che-impatto-hanno-sulle-nostre-query/</guid>
      <description>&lt;p&gt;Come credo alla maggior parte di voi, spesso, anche a me capita di dover mantenere codice scritto da qualcun altro. Uno degli aspetti che (ri)trovo con una certa frequenza è che, spesso, non prestiamo attenzione a come scriviamo le nostre query, sottovalutando l&amp;rsquo;impatto che queste possono avere sul nostro sistema.&lt;/p&gt;</description>
    </item>
    <item>
      <title>TOP(n) WITH TIES, nuova feature? No, é sempre esistita!</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2017/04/09/pceglie-withties/</link>
      <pubDate>Sun, 09 Apr 2017 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2017/04/09/pceglie-withties/</guid>
      <description>&lt;p&gt;C&amp;rsquo;è ancora chi si meraviglia davanti all&amp;rsquo;opzione WITH TIES.&lt;/p&gt;&#xA;&lt;p&gt;Molti non sanno che esiste o ne sottovalutano l&amp;rsquo;utilità.&lt;/p&gt;&#xA;&lt;p&gt;Consideriamo la query&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-sql&#34; data-lang=&#34;sql&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;SELECT&lt;/span&gt; TOP &lt;span style=&#34;color:#ae81ff&#34;&gt;3&lt;/span&gt; Name, ListPrice&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;FROM&lt;/span&gt; SalesLT.Product&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;ORDER&lt;/span&gt; &lt;span style=&#34;color:#66d9ef&#34;&gt;BY&lt;/span&gt; ListPrice &lt;span style=&#34;color:#66d9ef&#34;&gt;ASC&lt;/span&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questa query ritornerà i primi 3 articoli ordinati per ListPrice crescente.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;opzione WITH TIES indica che, invece di restituire solo il numero richiesto di righe, la query restituirà anche tutte le righe aventi lo stesso valore dell&amp;rsquo;ultima riga in base ai criteri di ordinamento (ListPrice, nel nostro caso). Questo significa che si potrebbero ottenere più righe rispetto a quelle richieste, ma la selezione delle righe diventa di tipo deterministico (al contrario del caso precedente).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Uso &#34;nascosto&#34; del tempdb</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2017/01/09/uso-nascosto-del-tempdb/</link>
      <pubDate>Mon, 09 Jan 2017 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2017/01/09/uso-nascosto-del-tempdb/</guid>
      <description>&lt;p&gt;Qualche settimana fa, mentre ero al lavoro, mi sono ritrovato a dover risolvere un problema apparentemente non molto strano, ma che tuttavia nasconde qualche retroscena interessante. I fatti sono stati più o meno questi:&lt;/p&gt;&#xA;&lt;p&gt;Circa a metà mattinata mi è stato segnalato un problema di prestazioni su uno dei sistemi che abbiamo in gestione nel nostro team di lavoro; dopo alcuni semplici controlli è stato subito chiaro che il rallentamento era sostanzialmente dovuto ad un problema di contency sul tempdb. &amp;ldquo;Beh.. abbastanza semplice!&amp;rdquo; - ho subito pensato! - &amp;ldquo;la colpa è mia perché (ahi ahi ahi) non ho ancora fatto lo split del file dati sul tempdb!&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>&#34;SQL Server Management Studio ha smesso di funzionare&#34;, ho perso lo script che stavo scrivendo?</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/11/15/sqlserver-management-studio-ha-smesso-di-funzionare-ho-perso-lo-script-che-stavo-scrivendo/</link>
      <pubDate>Tue, 15 Nov 2016 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/11/15/sqlserver-management-studio-ha-smesso-di-funzionare-ho-perso-lo-script-che-stavo-scrivendo/</guid>
      <description>&lt;p&gt;&amp;ldquo;SQL Server Management Studio ha smesso di funzionare&amp;rdquo;, &lt;strong&gt;a volte succede&lt;/strong&gt; di ottenere a video questo messaggio &lt;strong&gt;poco simpatico&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://1ab09184.ugiss-website.pages.dev/2016/11/15/sqlserver-management-studio-ha-smesso-di-funzionare-ho-perso-lo-script-che-stavo-scrivendo/images/Management-Studio-crashed-1.jpg&#34;&gt;&lt;img src=&#34;https://1ab09184.ugiss-website.pages.dev/2016/11/15/sqlserver-management-studio-ha-smesso-di-funzionare-ho-perso-lo-script-che-stavo-scrivendo/images/Management-Studio-crashed-1.jpg&#34; alt=&#34;Management Studio crashed 1&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Nulla di grave, &amp;ldquo;&lt;em&gt;&lt;strong&gt;basta solo&lt;/strong&gt;&lt;/em&gt;&amp;rdquo; riavviare il programma.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://1ab09184.ugiss-website.pages.dev/2016/11/15/sqlserver-management-studio-ha-smesso-di-funzionare-ho-perso-lo-script-che-stavo-scrivendo/images/Management-Studio-crashed-2.jpg&#34;&gt;&lt;img src=&#34;https://1ab09184.ugiss-website.pages.dev/2016/11/15/sqlserver-management-studio-ha-smesso-di-funzionare-ho-perso-lo-script-che-stavo-scrivendo/images/Management-Studio-crashed-2.jpg&#34; alt=&#34;Management Studio crashed 2&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ed ecco che una volta riavviato SSMS &lt;strong&gt;alcun file è stato recuperato&lt;/strong&gt; &amp;hellip; GRRRRRR!!!!&lt;/p&gt;&#xA;&lt;p&gt;La cosa meno divertente, quindi, è scoprire che &lt;strong&gt;la query/procedura&lt;/strong&gt; che si stava scrivendo e provando, magari da qualche ora, &lt;strong&gt;è andata persa&lt;/strong&gt;. Ovvero perse le ultime modifiche non salvate .. &lt;em&gt;come dici!? non hai salvato lo script SQL prima di eseguirlo!? Ahhh, non hai proprio salvato nemmeno una volta!?&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQLServer 2016 non si avvia ... ecco uno dei perchè</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/11/02/sqlserver-2016-non-si-avvia-ecco-uno-dei-perche/</link>
      <pubDate>Wed, 02 Nov 2016 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/11/02/sqlserver-2016-non-si-avvia-ecco-uno-dei-perche/</guid>
      <description>&lt;p&gt;&amp;ldquo;&lt;em&gt;TCP Provider, error: 0 - Il computer remoto ha rifiutato la connessione di rete. Microsoft SQL Server, Error: 1225&lt;/em&gt;&amp;rdquo; questo semplice e significativo messaggio ci avvisa che il Server SQL, col quale stiamo cercando di collergarci, &lt;strong&gt;non risponde&lt;/strong&gt;. Ci possono essere molteplici motivi di questo &amp;ldquo;disservizio&amp;rdquo;, in questo articolo viene illustrata una delle cause e la sua risoluzione.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Lista Trace Flags Ufficiale</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/09/16/lista-trace-flags-ufficiale/</link>
      <pubDate>Fri, 16 Sep 2016 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/09/16/lista-trace-flags-ufficiale/</guid>
      <description>&lt;p&gt;Il &lt;a href=&#34;https://x.com/mssqltiger&#34;&gt;SQL Server Tiger Team&lt;/a&gt; si sta occupando, tra le altre cose, di tenere aggiornata la lista di tutti i &lt;em&gt;trace flag&lt;/em&gt; disponibili in SQL Server per modificare il funzionamento nel caso sia assolutamente necessario. La lista è disponibile qui:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://aka.ms/traceflags&#34;&gt;http://aka.ms/traceflags&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Occhio, come al solito, che i trace flags non sono da usare alla leggera, quindi usateli se e solo se è strettamente necessario!&lt;/p&gt;</description>
    </item>
    <item>
      <title>JSON support is generally available in Azure SQL Database</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/09/06/json-support-is-generally-available-in-azure-sql-database/</link>
      <pubDate>Tue, 06 Sep 2016 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/09/06/json-support-is-generally-available-in-azure-sql-database/</guid>
      <description>&lt;p&gt;Generalmente disponibile il supporto JSON per Azure SQL Database&lt;/p&gt;&#xA;&lt;p&gt;Azure Blog post&lt;/p&gt;&#xA;&lt;p&gt;MSDN Blog &lt;a href=&#34;https://blogs.msdn.microsoft.com/sqlserverstorageengine/2016/09/05/json-generaly-available-in-azure-sql-database/&#34;&gt;post&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;I &lt;strong&gt;nuovi&lt;/strong&gt; database creati in Azure SQL Database hanno di &lt;strong&gt;Default il Compatibility Level 130&lt;/strong&gt;, i database creati da qualche tempo hanno invece &lt;strong&gt;Default il Compatibility Level 120&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Per controllare il compatibility level corrente &lt;code&gt;SELECT name, compatibility_level FROM sys.databases WHERE name = &#39;database_name&#39;;&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Usare json su SQLServer 2005, 2008, 2012 e 2014 .. è possibile!</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/05/14/usare-json-su-sqlserver-2005-2008-2012-e-2014-e-possibile/</link>
      <pubDate>Sat, 14 May 2016 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/05/14/usare-json-su-sqlserver-2005-2008-2012-e-2014-e-possibile/</guid>
      <description>&lt;p&gt;Vedere il supporto nativo di JSON su SQLServer 2016 (e anche su Azure SQLDatabase) mi ha fatto pensare che magari era possibile averlo in forma semplificata anche su versioni precedenti.&lt;/p&gt;&#xA;&lt;p&gt;Tutto è nato dalla necessità di gestire un flusso di dati con una Stored Procedure in arrivo da una WebAPI. Inizialmente la WebAPI, dopo aver fatto gli opportuni controlli logici di validità, deserializzava il flusso per poi formattare una stringa da passare alla Stored Procedure. La gestione del parametro in ingresso alla SP come TABLE non sembrava possibile utilizzando EF6, quindi si è optato di mantenere la SP nello stato originale, ovvero con la stringa e altri parametri per i caratteri separatori.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Come effettuare il Debug di un Trigger (T-SQL)</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/04/11/come-effettuare-il-debug-di-un-trigger-t-sql/</link>
      <pubDate>Mon, 11 Apr 2016 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/04/11/come-effettuare-il-debug-di-un-trigger-t-sql/</guid>
      <description>&lt;p&gt;I più importanti linguaggi di programmazione hanno strumenti di debug integrati direttamente nell&amp;rsquo;IDE. Il debugger ha tipicamente un&amp;rsquo;interfaccia grafica che consente di esaminare i valori che assumono le variabili durante l&amp;rsquo;esecuzione, il flusso del programma (step-by-step) e permette di definire punti di interruzione in corrispondenza dei quali fermare l&amp;rsquo;esecuzione del programma.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Qual è la tabella più grande nel DB corrente?</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/01/30/qual-e-la-tabella-piu-grande-nel-db-corrente/</link>
      <pubDate>Sat, 30 Jan 2016 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/01/30/qual-e-la-tabella-piu-grande-nel-db-corrente/</guid>
      <description>&lt;p&gt;Può succedere di avere la necessità di sapere quale sia la tabella più grande (in termini di spazio occupato), nel database su cui si sta lavorando.&lt;/p&gt;&#xA;&lt;p&gt;Ci sono diversi modi per rispondere a questa domanda, si potrebbe utilizzare il report standard &lt;a href=&#34;http://blogs.msdn.com/b/buckwoody/archive/2007/12/14/sql-server-management-studio-standard-reports-disk-usage-by-table-top-tables.aspx&#34;&gt;Disk Usage by Top Table&lt;/a&gt; fornito da SQL Server Management Studio (SSMS) oppure, se si volesse effettuare l&amp;rsquo;operazione attraverso T-SQL, si potrebbe eseguire la stored procedure di sistema &lt;a href=&#34;https://msdn.microsoft.com/it-it/library/ms188776%5C%28v=sql.130%5C%29.aspx&#34;&gt;sp_spaceused&lt;/a&gt; per ogni tabella del DB, salvando tutti i risultati parziali in una tabella temporanea per poi ordinarli in funzione della colonna &amp;ldquo;reserved&amp;rdquo; o &amp;ldquo;data&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Data Warehouse con SQL Server: Architetture Fast Track</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2016/01/08/data-warehouse-con-sql-server-architetture-fast-track/</link>
      <pubDate>Fri, 08 Jan 2016 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2016/01/08/data-warehouse-con-sql-server-architetture-fast-track/</guid>
      <description>&lt;p&gt;Una degli ambiti principali delle consulenze che svolgo è quello di creare soluzioni per Data Warehouse e Business Intelligence ad alte performance. Ed una della cose che ancora, all&amp;rsquo;alba del 2016, mi trovo a dover affrontare e con la quale devo  combattere tutti i giorni è un hardware&amp;hellip;inadeguato.&lt;/p&gt;&#xA;&lt;p&gt;Inadeguato per un Data Warehouse, chiaramente, dove macchine anche molto costose (leggi SAN) hanno delle performance assolutamente basse rispetto al costo che hanno (essendo il più delle volte ottimizzate per altri casi d&amp;rsquo;uso), e che quindi rendono l&amp;rsquo;utente finale solitamente molto poco contento.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trigger su SQL Server: Utili o dannosi?</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2015/08/28/trigger-su-sql-server-utili-o-dannosi/</link>
      <pubDate>Fri, 28 Aug 2015 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2015/08/28/trigger-su-sql-server-utili-o-dannosi/</guid>
      <description>&lt;p&gt;I trigger sono spesso motivo di discordia tra sviluppatori e DBA, tra chi personalizza una soluzione standard e chi la fornisce, tra clienti e software vendor. Sono spesso i primi imputati quando le performance dell&amp;rsquo;istanza SQL Server o del database degradano. Sembrano facili da scrivere, ma scrivere trigger efficienti non è affatto semplice e quando la loro complessità aumenta, talvolta possono presentare effetti collaterali in grado di confondere persino l&amp;rsquo;autore.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL Server DML Triggers: Tips and Tricks - Part 4</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2015/05/01/sql-server-dml-triggers-tips-and-tricks-part-4/</link>
      <pubDate>Fri, 01 May 2015 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2015/05/01/sql-server-dml-triggers-tips-and-tricks-part-4/</guid>
      <description>&lt;p&gt;Il quarto di una serie di articoli su trucchi, consigli, suggerimenti e best practices per scrivere e gestire in modo efficiente i Trigger DML in SQL Server:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://sqlblog.com/blogs/sergio_govoni/archive/2015/05/01/sql-server-dml-triggers-tips-tricks-part-4-statements-that-each-trigger-should-have.aspx&#34;&gt;SQL Server DML Triggers - Tips &amp;amp; Tricks - Part 4 (&amp;ldquo;Statements that each Trigger should have&amp;rdquo;)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ricordate, un Trigger è ottimizzato quando la sua durata è breve!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Identificare sequenze all&#39;interno di sequenze</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2014/02/07/identificare-sequenze-allinterno-di-sequenze/</link>
      <pubDate>Fri, 07 Feb 2014 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2014/02/07/identificare-sequenze-allinterno-di-sequenze/</guid>
      <description>&lt;p&gt;Articolo in due parti di Itzik Ben-Gan che analizza in dettaglio diverse tecniche per identificare sequenze all&amp;rsquo;interno di altre sequenze in T-SQL.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://sqlmag.com/t-sql/identifying-subsequence-in-sequence-part-1&#34; title=&#34;Identifying a Subsequence in a Sequence, Part 1&#34;&gt;Identifying a Subsequence in a Sequence, Part 1&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://sqlmag.com/t-sql/identifying-subsequence-in-sequence-part-2&#34; title=&#34;Identifying a Subsequence in a Sequence, Part 2&#34;&gt;Identifying a Subsequence in a Sequence, Part 2&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>Boost Your T-SQL with the APPLY Operator</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2014/02/04/boost-your-t-sql-with-the-apply-operator/</link>
      <pubDate>Tue, 04 Feb 2014 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2014/02/04/boost-your-t-sql-with-the-apply-operator/</guid>
      <description>&lt;p&gt;Microsoft Virtual Accademy ha pubblicato un bel webcast fatto da Itzik Ben-Gan dedicato all&amp;rsquo;uso dell&amp;rsquo;operatore APPLY, estremamente potente e tipicamente poco utilizzato. Di seguito il link:&lt;/p&gt;&#xA;&lt;p&gt;&amp;ldquo;&lt;a href=&#34;http://www.microsoftvirtualacademy.com/training-courses/boost-your-t-sql-with-the-apply-operator#?fbid=oMKvWL8JAjE&#34;&gt;Boost Your T-SQL with the APPLY Operator&lt;/a&gt;&amp;rdquo;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Need creative solutions to T-SQL issues? Get them from Itzik Ben-Gan, one of the world&amp;rsquo;s foremost authorities, along with Microsoft Program Manager Umachandar Jayachandran. These experts demonstrate the APPLY operator, a T-SQL feature that can be used to solve a wide variety of problems. What&amp;rsquo;s especially interesting about APPLY is how it can be used in conjunction with many T-SQL features. To demonstrate this aspect of APPLY, the session tracks the operator through time, discussing features that were initially introduced in different versions of SQL Server (7.0, like TOP, through 2012, like OFFSET-FETCH), some of which are widely used today. For each feature, the session describes its shortcomings and then shows how to use APPLY to overcome it and to improve the feature.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSIS 2008 Tips and Tricks</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2010/12/17/ssis-2008-tips-and-tricks/</link>
      <pubDate>Fri, 17 Dec 2010 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2010/12/17/ssis-2008-tips-and-tricks/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;http://www.msteched.com/Speakers/Steve-Swartz&#34;&gt;Steve Swartz&lt;/a&gt;, Group Program Manager SSIS Team, in una delle sessioni che ha tenuto al TechEd Europe 2010 ha parlato di SSIS Tips &amp;amp; Tricks.&lt;/p&gt;&#xA;&lt;p&gt;Se state lavorando a un nuovo progetto con SQL Server Integration Services o se dovete migliorare le performance di un progetto (insieme di package) esistente, ma non avete tempo a sufficienza o risorse economiche per iniziare da zero il tuning delle performance, vi consiglio di investire 60 minuti guardando questo webcast.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Come impostare la proprietà IsSorted in un package SSIS</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2008/02/02/come-impostare-la-propriet%C3%A0-issorted-in-un-package-ssis/</link>
      <pubDate>Sat, 02 Feb 2008 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2008/02/02/come-impostare-la-propriet%C3%A0-issorted-in-un-package-ssis/</guid>
      <description>&lt;p&gt;A volte può capitare di dover collegare tra loro più resultset, ad esempio tramite il component Merge Join. Alcune trasformazioni necessitano di ricevere set di input ORDINATI. Quando questi input sono considerati ordinati? SSIS riesce a comprenderlo tramite una proprietà: IsSorted.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.dotnethell.it/tips/SSIS-IsSorted-Property.aspx&#34;&gt;http://www.dotnethell.it/tips/SSIS-IsSorted-Property.aspx&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Generare codice SQL senza eseguirlo.</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2008/01/24/generare-codice-sql-senza-eseguirlo/</link>
      <pubDate>Thu, 24 Jan 2008 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2008/01/24/generare-codice-sql-senza-eseguirlo/</guid>
      <description>&lt;p&gt;Vediamo come creare codice SQL al volo (quindi senza apportare alcuna modifica &amp;ldquo;reale&amp;rdquo; alla base dati) utilizzando le potenzialità di generazione degli script fornita da SMO:&lt;/p&gt;&#xA;&lt;p&gt;Non dimentichiamoci degli imports &amp;hellip;&lt;/p&gt;&#xA;&lt;p&gt;Imports Microsoft.SqlServer.Management.Smo&lt;br&gt;&#xA;Imports Microsoft.SqlServer.Management.Common&lt;/p&gt;&#xA;&lt;p&gt;Ci colleghiamo al server di nostro interesse &amp;hellip;  &lt;/p&gt;&#xA;&lt;p&gt;Dim serconn As New ServerConnection(&amp;ldquo;Istanza&amp;rdquo;, &amp;ldquo;userName&amp;rdquo;, &amp;ldquo;Password&amp;rdquo;)&lt;br&gt;&#xA;serconn.LoginSecure = False &amp;rsquo; Usando le credenziali di SQL Server &amp;hellip;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Come eseguire il deploy di progetti Sql Server Integration Services(SSIS)</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2008/01/20/come-eseguire-il-deploy-di-progetti-sql-server-integration-services-ssis/</link>
      <pubDate>Sun, 20 Jan 2008 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2008/01/20/come-eseguire-il-deploy-di-progetti-sql-server-integration-services-ssis/</guid>
      <description>&lt;p&gt;Sql Server Integration Services consente un deploy molto semplice dei pacchetti di un progetto. Utilizzando BIDS (Business Intelligence Development Studio) la procedura è molto semplice.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.dotnethell.it/tips/Deploy-SQL-Server-SSIS.aspx&#34;&gt;http://www.dotnethell.it/tips/Deploy-SQL-Server-SSIS.aspx&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SSIS - Controllo del flusso di dati con dataviewers</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2008/01/20/ssis-controllo-del-flusso-di-dati-con-dataviewers/</link>
      <pubDate>Sun, 20 Jan 2008 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2008/01/20/ssis-controllo-del-flusso-di-dati-con-dataviewers/</guid>
      <description>&lt;p&gt;In fase di debug di un processo di ETL(Extract-Trasformation-Load), una delle cose più importanti è sicuramente avere la possibilità di controllare i dati che effettivamente stanno passando per una determinata pipeline (magari prima e dopo un determinato tipo di trasformazione).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.dotnethell.it/tips/SSIS-DataViewers-Flow.aspx&#34;&gt;http://www.dotnethell.it/tips/SSIS-DataViewers-Flow.aspx&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Come utilizzare la Dedicated Administrator Connection in SQL Server 2005</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/12/03/come-utilizzare-la-dedicated-administrator-connection-in-sql-server-2005/</link>
      <pubDate>Mon, 03 Dec 2007 00:00:00 +0100</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/12/03/come-utilizzare-la-dedicated-administrator-connection-in-sql-server-2005/</guid>
      <description>&lt;p&gt;La funzionalità DAC, &lt;strong&gt;Dedicated Administrator Connection&lt;/strong&gt;, è un&amp;rsquo;interessante novità di SQL Server 2005.&#xA;Consente di arrivare all&amp;rsquo;istanza anche in casi in cui questa non risponda più.&lt;/p&gt;&#xA;&lt;p&gt;Si dice solo che questa funzionalità è utilizzabile da riga di comando (&lt;strong&gt;SQLCMD&lt;/strong&gt;).&lt;br&gt;&#xA;In realtà è utilizzabile anche dal &lt;strong&gt;Management Studio&lt;/strong&gt;, semplicemente inserendo nella finestra di connessione &amp;ldquo;&lt;em&gt;ADMIN:nomeIstanza&lt;/em&gt;&amp;rdquo; al posto del solito &amp;ldquo;&lt;em&gt;nomeIstanza&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Calcolare la dimensione di un record</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/calcolare-la-dimensione-di-un-record/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/calcolare-la-dimensione-di-un-record/</guid>
      <description>&lt;p&gt;Stimare la quantità di spazio che sarà, presumibilmente, necessaria per memorizzare le informazioni all’interno di un database è sicuramente un’operazione utile in fase di definizione e modellazione della nostra base dati. In questo tip viene descritto come fare:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0702.mspx#EEAAC&#34;&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0702.mspx#EEAAC&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Consigli sull&#39;utilizzo di GUID come Primary Key</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/consigli-sull-utilizzo-di-guid-come-primary-key/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/consigli-sull-utilizzo-di-guid-come-primary-key/</guid>
      <description>&lt;p&gt;Una serie di importanti consigli sull&amp;rsquo;utilizzo (o il NON utilizzo) di colonne GUID:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0706.mspx#EOB&#34;&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0706.mspx#EOB&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Contare i giorni lavorativi tra due date</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/contare-i-giorni-lavorativi-tra-due-date/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/contare-i-giorni-lavorativi-tra-due-date/</guid>
      <description>&lt;p&gt;Un tip su come calcolare in modo molto efficiente quanti giorni lavorativi si sono tra due date:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0706.mspx#E2C&#34;&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0706.mspx#E2C&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creare un template per Reporting Services</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/creare-un-template-per-reporting-services/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/creare-un-template-per-reporting-services/</guid>
      <description>&lt;p&gt;La creazione di un template per la creazione di report è un buona best practice da prendere in considerazione. Per creare un template e renderlo disponibile da Visual Studio è un&amp;rsquo;operazione piuttosto semplice. Una volta definito e creato il report che farà da template basterà copiarlo nella cartella&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ProjectItems\ReportProject&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fare DISTINCT con COLLATE</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/fare-distinct-con-collate/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/fare-distinct-con-collate/</guid>
      <description>&lt;p&gt;Un sempice quanto utile tip per eseguire delle SELECT DISTINCT con una collation arbitraria:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0612.mspx#E6C&#34;&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0612.mspx#E6C&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Passare un array di dati ad una stored procedure</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/passare-un-array-di-dati-ad-una-stored-procedure/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/passare-un-array-di-dati-ad-una-stored-procedure/</guid>
      <description>&lt;p&gt;In SQL Server 2000 e 2005 non è possibile passare nativamente ad una stored procedure un&amp;rsquo;array di dati. In questo articolo viene spiegato come risolvere il problema.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://msdn.microsoft.com/it-it/library/cc185040.aspx#ID0E3B&#34;&gt;http://msdn.microsoft.com/it-it/library/cc185040.aspx#ID0E3B&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;In SQL Server 2008 il problema non si pone in quanto ci sono i Table Valued Parameters che risolvono alla radice il problema&lt;/p&gt;</description>
    </item>
    <item>
      <title>SQL Server Management Studio Tips &amp; Tricks</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/sql-server-management-studio-tips-tricks/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/sql-server-management-studio-tips-tricks/</guid>
      <description>&lt;p&gt;Una serie di produttivi tips &amp;amp; tricks da usare con il SQL Server Management Studio:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0612.mspx#E5D&#34;&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0612.mspx#E5D&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Trovare i buchi in una sequenza di numeri</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/10/trovare-i-buchi-in-una-sequenza-di-numeri/</link>
      <pubDate>Wed, 10 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/10/trovare-i-buchi-in-una-sequenza-di-numeri/</guid>
      <description>&lt;p&gt;Un dettagliato tip che spiega come risolvere il problema dell&amp;rsquo;identificazione di buchi in una sequenza di numeri:&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0705.mspx#EMC&#34;&gt;http://www.microsoft.com/italy/msdn/risorsemsdn/community/tips/0705.mspx#EMC&lt;br&gt;&#xA;&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>Verificare l&#39;esistenza di un file</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/10/02/verificare-l-esistenza-di-un-file/</link>
      <pubDate>Tue, 02 Oct 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/10/02/verificare-l-esistenza-di-un-file/</guid>
      <description>&lt;p&gt;Con queste poche dighe di codice è possibile verificare - unicamente mediante T-SQL - l&amp;rsquo;esistenza o meno di un file:&lt;/p&gt;&#xA;&lt;p&gt;create table [#cmdoutput]&lt;br&gt;&#xA;(&lt;br&gt;&#xA;[output] nvarchar(1024)&lt;br&gt;&#xA;)&lt;br&gt;&#xA;go&lt;/p&gt;&#xA;&lt;p&gt;insert into [#cmdoutput] ([output])&lt;br&gt;&#xA;exec xp_cmdshell &amp;lsquo;dir /b \\tauceti2\c$\autoexec.bat&amp;rsquo;&lt;br&gt;&#xA;go&lt;/p&gt;&#xA;&lt;p&gt;declare @exists int&lt;br&gt;&#xA;select @exists = count(*) from #cmdoutput where [output] is not null&lt;br&gt;&#xA;if (@exists &amp;gt; 0) print &amp;lsquo;Exists&amp;rsquo; else print &amp;lsquo;Not Exists&amp;rsquo;&lt;br&gt;&#xA;go&lt;/p&gt;</description>
    </item>
    <item>
      <title>Smo: individuare le istanze di SQL Server</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/09/30/smo-individuare-le-istanze-di-sql-server/</link>
      <pubDate>Sun, 30 Sep 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/09/30/smo-individuare-le-istanze-di-sql-server/</guid>
      <description>&lt;p&gt;Esistono molti metodi per ottenere programmaticamente informazioni utili circa le istanze di SQL Server disponibili sia localmente che in rete anche se, in quest&amp;rsquo;ultimo caso, non tutti garantiscono il corretto funzionamento dal momento che possono entrare in gioco fattori difficilmente prevedibili e arginabili legati solitamente all&amp;rsquo;infratruttura di security della rete piuttosto che alla configurazione delle varie istanze di SQL Server.&lt;br&gt;&#xA;Ad ogni modo, in nostro soccorso corrono le ormai famigerate API conosciute con l&amp;rsquo;acronimo di Smo (&lt;a href=&#34;http://technet.microsoft.com/en-us/library/ms162169.aspx&#34;&gt;SQL Server Management Objects&lt;/a&gt;), che permettono di interagire con versioni di SQL Server dalla 7 in poi.&lt;br&gt;&#xA;Il primo passo da effettuare è dunque l&amp;rsquo;importazione nel nostro progetto del namespace Microsoft.SqlServer.Management.Smo tramite la &amp;lsquo;reference&amp;rsquo; alle librerie Microsoft.SqlServer.Smo.dll e Microsoft.SqlServer.ConnectionInfo.dll. A questo punto, un primo metodo percorribile (e facilmente opinabile) permette di enumerare la lista delle istanze (locali e non) registrate in SQL Server Management Studio tramite il metodo &lt;a href=&#34;http://technet.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.smoapplication.sqlserverregistrations.enumregisteredservers.aspx&#34;&gt;EnumRegisteredServers&lt;/a&gt; di &lt;a href=&#34;http://technet.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.smoapplication.aspx&#34;&gt;SmoApplication&lt;/a&gt;:&lt;/p&gt;</description>
    </item>
    <item>
      <title>GO ed escuzioni multiple della stessa istruzione</title>
      <link>https://1ab09184.ugiss-website.pages.dev/2007/09/20/go-ed-escuzioni-multiple-della-stessa-istruzione/</link>
      <pubDate>Thu, 20 Sep 2007 00:00:00 +0200</pubDate>
      <guid>https://1ab09184.ugiss-website.pages.dev/2007/09/20/go-ed-escuzioni-multiple-della-stessa-istruzione/</guid>
      <description>&lt;p&gt;Il comando &lt;strong&gt;GO&lt;/strong&gt; che utilizziamo per separare in batch le istruzioni &lt;strong&gt;TSQL&lt;/strong&gt; può essere associato ad un valore numerico.&lt;br&gt;&#xA;A cosa server tale valore?&lt;br&gt;&#xA;A far eseguire N volte le istruzioni contenute nel batch.&lt;/p&gt;&#xA;&lt;p&gt;Ovvero scrivendo un&amp;rsquo;istruzione come:&lt;/p&gt;&#xA;&lt;p&gt;PRINT &amp;lsquo;ciao&amp;rsquo;&lt;br&gt;&#xA;GO 3&lt;/p&gt;&#xA;&lt;p&gt;Otteniamo questo risultato:&lt;/p&gt;&#xA;&lt;p&gt;Beginning execution loop&lt;br&gt;&#xA;ciao&lt;br&gt;&#xA;ciao&lt;br&gt;&#xA;ciao&lt;br&gt;&#xA;Batch execution completed 3 times.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
