<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Sql Server Blog di Francesco Diaz : Powershell</title><link>http://blogs.technet.com/francesco_diaz/archive/tags/Powershell/default.aspx</link><description>Tags: Powershell</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Sql Server Powershell Provider e SMO</title><link>http://blogs.technet.com/francesco_diaz/archive/2008/07/17/sql-server-powershell-provider-e-smo.aspx</link><pubDate>Thu, 17 Jul 2008 17:36:23 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3090179</guid><dc:creator>Francesco Diaz</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/francesco_diaz/comments/3090179.aspx</comments><wfw:commentRss>http://blogs.technet.com/francesco_diaz/commentrss.aspx?PostID=3090179</wfw:commentRss><description>&lt;p&gt;Grazie al provider per Sql Server fornito con la powershell di Sql Server 2008 è possibile navigare all'interno della gerarchia degli oggetti di un'istanza Sql come se si trattasse di un file system. &lt;/p&gt; &lt;p&gt;Di seguito un piccolo esempio su come vedere la lista delle tabelle all'interno del database AdventureWorks :&lt;/p&gt; &lt;p&gt;Per avviare la powershell basta fare tasto destro sul nome dell'istanza e cliccare su "Start PowerShell"&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/francesco_diaz/WindowsLiveWriter/SqlServerPowershellProvider_F1CE/StartPowershell_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="398" alt="StartPowershell" src="http://blogs.technet.com/blogfiles/francesco_diaz/WindowsLiveWriter/SqlServerPowershellProvider_F1CE/StartPowershell_thumb.jpg" width="259" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Per vedere la lista delle tabelle è sufficiente eseguire i classici comandi MS-DOS per posizionarsi all'interno del percorso richiesto :&lt;/p&gt; &lt;ol&gt; &lt;li&gt;cd databases\AdventureWorks2008\Tables (per posizionarsi all'interno della collection delle tabelle)  &lt;li&gt;dir (per vedere la lista delle tabelle)&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/francesco_diaz/WindowsLiveWriter/SqlServerPowershellProvider_F1CE/dir_powershell_4.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="331" alt="dir_powershell" src="http://blogs.technet.com/blogfiles/francesco_diaz/WindowsLiveWriter/SqlServerPowershellProvider_F1CE/dir_powershell_thumb_1.jpg" width="723" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Per effettuare azioni sugli oggetti di Sql Server usiamo &lt;a href="http://msdn.microsoft.com/en-us/library/ms162169.aspx" target="_blank"&gt;SMO&lt;/a&gt; . Proviamo ora a creare una tabella all'interno del database AdventureWorks.&lt;/p&gt; &lt;p&gt;Prima di tutto registriamo (se necessario) l'assembly Microsoft.SqlServer.Smo.dll di Sql Server 2008 RC0 nella &lt;a href="http://msdn.microsoft.com/en-us/library/yf1d93sz.aspx" target="_blank"&gt;GAC&lt;/a&gt;. Il file si trova nella cartella \Program Files (x86)\Microsoft Sql Server\100\SDK\Assemblies\ .&lt;/p&gt; &lt;p&gt;Per effettuare la registrazione nella GAC sono necessari&amp;nbsp; i tools &lt;a href="http://msdn.microsoft.com/en-us/library/k5b5tt23.aspx" target="_blank"&gt;SN&lt;/a&gt; e &lt;a href="http://msdn.microsoft.com/en-us/library/ex0ss12c(VS.80).aspx" target="_blank"&gt;Gacutil&lt;/a&gt; reperibili nell'SDK del .NET Framework 2.0. La versione a 64 bit è reperibile &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=1AEF6FCE-6E06-4B66-AFE4-9AAD3C835D3D&amp;amp;displaylang=it" target="_blank"&gt;qui&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;I comandi da digitare sono i seguenti : &lt;/p&gt; &lt;p&gt;1) sn –Vr Microsoft.SqlServer.Smo.dll &lt;p&gt;2) gacutil –i Microsoft.SqlServer.Smo.dll &lt;p&gt;&amp;nbsp; &lt;p&gt;E ora da powershell creiamo la tabella "Tabella_di_test" all'interno del database AdventureWorks2008 :&lt;/p&gt; &lt;p&gt;" &lt;p&gt;$srv = New-Object Microsoft.SqlServer.Management.Smo.Server(".")  &lt;p&gt;$db = $srv.Databases["AdventureWorks2008"]  &lt;p&gt;$tbl = New-Object Microsoft.SqlServer.Management.Smo.Table  &lt;p&gt;$tbl.Parent = $db  &lt;p&gt;$tbl.Name = "Tabella_di_test"  &lt;p&gt;$col = New-Object Microsoft.SqlServer.Management.Smo.Column  &lt;p&gt;$col.Parent = $tbl  &lt;p&gt;$col.Name = "Colonna_di_test"  &lt;p&gt;$col.DataType = ([Microsoft.SqlServer.Management.Smo.DataType]::VarChar(50))  &lt;p&gt;$tbl.Columns.Add($col)  &lt;p&gt;$tbl.Create() &lt;p&gt;" &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;strong&gt;Risorse aggiuntive&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc281947(SQL.100).aspx" href="http://msdn.microsoft.com/en-us/library/cc281947(SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc281947(SQL.100).aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc281962(SQL.100).aspx" href="http://msdn.microsoft.com/en-us/library/cc281962(SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc281962(SQL.100).aspx&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/cc281939(SQL.100).aspx" href="http://msdn.microsoft.com/en-us/library/cc281939(SQL.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/cc281939(SQL.100).aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3090179" width="1" height="1"&gt;</description><category domain="http://blogs.technet.com/francesco_diaz/archive/tags/Sql+Server+2008/default.aspx">Sql Server 2008</category><category domain="http://blogs.technet.com/francesco_diaz/archive/tags/Programmazione/default.aspx">Programmazione</category><category domain="http://blogs.technet.com/francesco_diaz/archive/tags/Powershell/default.aspx">Powershell</category></item></channel></rss>