<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Optimisation et diagnostic SQL Server &#187; Powershell</title>
	<atom:link href="https://blog.developpez.com/babaluga/pcategory/powershell/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/babaluga</link>
	<description>Articles et fragments de code pour l&#039;optimisation SQL Server</description>
	<lastBuildDate>Wed, 26 Mar 2014 09:30:39 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>exporter la structure d&#8217;une base avec Powershell</title>
		<link>https://blog.developpez.com/babaluga/p12320/powershell/exporter-la-structure-dune-base-avec-powershell</link>
		<comments>https://blog.developpez.com/babaluga/p12320/powershell/exporter-la-structure-dune-base-avec-powershell#comments</comments>
		<pubDate>Sat, 09 Nov 2013 23:09:51 +0000</pubDate>
		<dc:creator><![CDATA[rudib]]></dc:creator>
				<category><![CDATA[Powershell]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/babaluga/?p=31</guid>
		<description><![CDATA[Le code ci-dessous peut être sauvegardé dans un fichier .ps1, pour être utilisé comme script. Changez simplement l&#8217;adresse de votre serveur SQL à la ligne 3, et le chemin de sauvegarde des scripts à la ligne 17. Il va exporter toutes les structures de vos bases de données dans des sous-répertoires, dans un répertoire nommé [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Le code ci-dessous peut être sauvegardé dans un fichier .ps1, pour être utilisé comme script. Changez simplement l&rsquo;adresse de votre serveur SQL à la ligne 3, et le chemin de sauvegarde des scripts à la ligne 17. Il va exporter toutes les structures de vos bases de données dans des sous-répertoires, dans un répertoire nommé selon le moment de l&rsquo;exécution. Cela vous permet de conserver plusieurs versions de votre export, et d&rsquo;utiliser un programme de diff (comme <a href="http://sourceforge.net/projects/winmerge/" title="WinMerge" target="_blank">WinMerge</a>) pour voir les différences.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;height:300px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[System.Reflection.Assembly]::LoadWithPartialName(&quot;Microsoft.SqlServer.Smo&quot;) | out-null<br />
<br />
$srv = New-Object &quot;Microsoft.SqlServer.Management.Smo.Server&quot; &quot;.\SQL2008&quot; <br />
$so = New-Object &quot;Microsoft.SqlServer.Management.Smo.ScriptingOptions&quot;;<br />
#$so.ScriptDrops = $TRUE;<br />
$so.IncludeIfNotExists = $TRUE;<br />
$so.AppendToFile = $FALSE<br />
$so.ToFileOnly = $TRUE<br />
$so.AnsiFile = $TRUE<br />
$so.ConvertUserDefinedDataTypesToBaseType = $TRUE<br />
$so.DriAll = $TRUE<br />
$so.Permissions = $TRUE<br />
$so.Triggers = $TRUE<br />
$so.PrimaryObject = $TRUE<br />
<br />
#$path = &quot;~/db_scripts/&quot;<br />
$path = &quot;c:/temp/db_scripts/$((Get-Date f 'yyyyMMdd-HHmm'))/&quot;<br />
if (!(Test-Path -path $path)) { Mkdir $path }<br />
<br />
foreach ($db in $srv.Databases) {<br />
&nbsp; &nbsp; if (!$db.IsSystemObject) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; $localPath = $path+$db.Name+&quot;/&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (!(Test-Path -path ($localPath))) { Mkdir ($localPath) }<br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; if (!(Test-Path -path ($localPath+&quot;tables/&quot;))) { Mkdir ($localPath+&quot;tables/&quot;) }<br />
&nbsp; &nbsp; &nbsp; &nbsp; foreach ($tbl in $db.tables) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!$tbl.IsSystemObject) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $so.FileName = $localPath+&quot;tables/&quot;+$tbl.Schema+&quot;.&quot;+$tbl.Name+&quot;.tbl.sql&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #Write-Host &quot;criture de $($tbl.Name) dans $($so.FileName)&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $so.FileName<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $tbl.Script($so)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #$tbl.Script($so) &amp;gt; [$tbl.Name].tbl.sql<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } # if (!$tbl.IsSystemObject)<br />
&nbsp; &nbsp; &nbsp; &nbsp; } # foreach $tbl<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (!(Test-Path -path ($localPath+&quot;procedures/&quot;))) { Mkdir ($localPath+&quot;procedures/&quot;) }<br />
&nbsp; &nbsp; &nbsp; &nbsp; foreach ($sp in $db.StoredProcedures) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!$sp.IsSystemObject) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $so.FileName = $localPath+&quot;procedures/&quot;+$sp.Schema+&quot;.&quot;+$sp.Name+&quot;.sp.sql&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $so.FileName<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $sp.Script($so)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } # if (!$tbl.IsSystemObject)<br />
&nbsp; &nbsp; &nbsp; &nbsp; } # foreach $sp<br />
&nbsp; &nbsp; &nbsp; &nbsp; if (!(Test-Path -path ($localPath+&quot;vues/&quot;))) { Mkdir ($localPath+&quot;vues/&quot;) }<br />
&nbsp; &nbsp; &nbsp; &nbsp; foreach ($vw in $db.Views) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; if (!$vw.IsSystemObject) {<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $so.FileName = $localPath+&quot;vues/&quot;+$vw.Schema+&quot;.&quot;+$vw.Name+&quot;.view.sql&quot;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $so.FileName<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $vw.Script($so)<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } # if (!$tbl.IsSystemObject)<br />
&nbsp; &nbsp; &nbsp; &nbsp; } # foreach $vw<br />
&nbsp; &nbsp; } # if ($db.IsSystemObject)<br />
} # foreach $db</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
