{"id":35,"date":"2012-01-06T19:28:40","date_gmt":"2012-01-06T19:28:40","guid":{"rendered":"http:\/\/nicholasroy.net\/blog\/?p=35"},"modified":"2014-01-05T16:00:35","modified_gmt":"2014-01-05T16:00:35","slug":"35","status":"publish","type":"post","link":"https:\/\/nicoleroy.net\/blog\/?p=35","title":{"rendered":"Rebuilding T-SQL Indexes From Powershell"},"content":{"rendered":"<p>Here is a Windows Powershell function I wrote to call a generic stored procedure that will rebuild all indexes in a database. \u00a0(I found the stored procedure here:\u00a0<a href=\"http:\/\/www.wisesoft.co.uk\/scripts\/t-sql_defrag_indexes_for_database.aspx\">http:\/\/www.wisesoft.co.uk\/scripts\/t-sql_defrag_indexes_for_database.aspx<\/a>) This turns out to be extremely useful for rebuilding indexes on a SQL Server-based connected directory at the end of each run of a Microsoft Forefront Identity Manager (FIM) MA that has undergone a lot of changes.<\/p>\n<p>PowerShell function: <span style=\"color: #1f497d\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">Function\u00a0<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: cadetblue\">Run-RebuildIndexes<br \/>\n<\/span><span style=\"color: black;font-family: 'Courier New';font-size: 10pt\">{<br \/>\n<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">param<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">([<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: teal\">string<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">]<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$DBName<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">,[<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: teal\">string<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">]<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SQLServerName<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;localhost&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">,[<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: teal\">string<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">]<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SQLServerPort<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;1433&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">)<\/span><\/p>\n<div class=\"WordSection1\"><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$log<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.debug(<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;Run-RebuildIndexes for MA=&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$ma<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.MAName <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8221; DBName=&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$DBName<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">)<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlConnection<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: cadetblue\">New-Object<\/span><\/strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">System.Data.SqlClient.SqlConnection<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlConnection<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.ConnectionString <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;Data Source=&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SQLServerName<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;;Initial Catalog=&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$DBName<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;;Integrated Security=True&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlCommand<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: cadetblue\">New-Object<\/span><\/strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">System.Data.SqlClient.SqlCommand<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlCommand<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.CommandText <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;DECLARE\u00a0 @return_value int<\/span><span style=\"color: maroon;font-family: 'Courier New';font-size: 10pt\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 EXEC\u00a0 @return_value = [dbo].[USP_REBUILD_ALL_IDX]<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 SELECT\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;Success&#8217; = @return_value&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<br \/>\n<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0 \u00a0 \u00a0\u00a0<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlCommand<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Connection <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlConnection<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlCommand<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.CommandType <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\"> [<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: teal\">System.Data.CommandType<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">]<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8216;Text&#8217;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlConnection<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Open();<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlAdapter<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: cadetblue\">New-Object<\/span><\/strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">System.Data.SqlClient.SqlDataAdapter<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlAdapter<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.SelectCommand <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlCommand<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$DataSet<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: cadetblue\">New-Object<\/span><\/strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">System.Data.DataSet<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$nRecs<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlAdapter<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Fill(<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$DataSet<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">)<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$SqlConnection<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Close();<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$results<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: cadetblue\">New-Object<\/span><\/strong><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">System.Collections.ArrayList<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">if<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\"> ( <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$nRecs<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">-gt<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\"> 0 )<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$ActiveDataSet<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$DataSet<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.tables[0]<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">foreach<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">(<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$rec<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">in<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$ActiveDataSet<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">)<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$success<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">=<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$rec<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Success;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$log<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Debug(<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;Index rebuild result code: &#8220;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">+<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$rec<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">.Success);<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">if<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">(<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$success<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">-ne<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: maroon\">&#8220;0&#8221;<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">)<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">return<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$false<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">else<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">return<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$true<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">else<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 {<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">return<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: purple\">$false<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">\u00a0\u00a0\u00a0\u00a0\u00a0 }<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: black\">}<\/span><\/div>\n<div class=\"WordSection1\">\nT-SQL stored procedure:<\/div>\n<div class=\"WordSection1\">\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">GO<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">USE<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New'\"> [DBName]<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">GO<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: green\">\/****** Object:\u00a0 StoredProcedure [dbo].[USP_REBUILD_ALL_IDX]\u00a0\u00a0\u00a0 Script Date: 01\/05\/2012 14:14:21 ******\/<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">SET<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New'\"> <span style=\"color: blue\">ANSI_NULLS<\/span> <span style=\"color: blue\">ON<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">GO<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">SET<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New'\"> <span style=\"color: blue\">QUOTED_IDENTIFIER<\/span> <span style=\"color: blue\">ON<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">GO<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: green\">&#8212; =============================================<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: green\">&#8212; Author:\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 &lt;Nicholas Roy&gt;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: green\">&#8212; Create date: &lt;Jan 5, 2012&gt;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: green\">&#8212; Description:\u00a0\u00a0 &lt;Rebuild all indexes in database&gt;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: green\">&#8212; =============================================<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">CREATE<\/span><span style=\"font-size: 10.0pt;font-family: 'Courier New'\"> <span style=\"color: blue\">PROCEDURE<\/span> [dbo]<span style=\"color: gray\">.<\/span>[USP_REBUILD_ALL_IDX]<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">AS<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">BEGIN<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: green\">&#8212; SET NOCOUNT ON added to prevent extra result sets from<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: green\">&#8212; interfering with SELECT statements.<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">SET<\/span> <span style=\"color: blue\">NOCOUNT<\/span> <span style=\"color: blue\">ON<\/span><span style=\"color: gray\">;<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: gray\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">DECLARE<\/span> @SQL <span style=\"color: blue\">NVARCHAR<\/span><span style=\"color: gray\">(<\/span><span style=\"color: fuchsia\">MAX<\/span><span style=\"color: gray\">)<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">SELECT<\/span> @SQL <span style=\"color: gray\">=<\/span><span style=\"color: gray\">(<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">SELECT<\/span> <span style=\"color: red\">N&#8217;ALTER INDEX ALL ON &#8216;<\/span> <span style=\"color: gray\">+<\/span> <span style=\"color: fuchsia\">QUOTENAME<\/span><span style=\"color: gray\">(<\/span>s<span style=\"color: gray\">.<\/span>name<span style=\"color: gray\">)<\/span> <span style=\"color: gray\">+<\/span> <span style=\"color: red\">&#8216;.&#8217;<\/span> <span style=\"color: gray\">+<\/span> <span style=\"color: fuchsia\">QUOTENAME<\/span><span style=\"color: gray\">(<\/span>t<span style=\"color: gray\">.<\/span>name<span style=\"color: gray\">)<\/span> <span style=\"color: gray\">+<\/span> <span style=\"color: red\">N&#8217; REBUILD<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: red\">\u00a0\u00a0\u00a0\u00a0\u00a0 &#8216;<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">FROM<\/span> <span style=\"color: green\">sys<\/span><span style=\"color: gray\">.<\/span><span style=\"color: green\">tables<\/span> t<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: gray\">JOIN<\/span> <span style=\"color: green\">sys<\/span><span style=\"color: gray\">.<\/span><span style=\"color: green\">schemas<\/span> s <span style=\"color: blue\">on<\/span> t<span style=\"color: gray\">.<\/span><span style=\"color: fuchsia\">schema_id<\/span> <span style=\"color: gray\">=<\/span> s<span style=\"color: gray\">.<\/span><span style=\"color: fuchsia\">schema_id<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">FOR<\/span> <span style=\"color: blue\">XML<\/span> <span style=\"color: blue\">PATH<\/span><span style=\"color: gray\">(<\/span><span style=\"color: red\">&#8221;<\/span><span style=\"color: gray\">),<\/span><span style=\"color: blue\">TYPE<\/span><span style=\"color: gray\">).<\/span>value<span style=\"color: gray\">(<\/span><span style=\"color: red\">&#8216;.&#8217;<\/span><span style=\"color: gray\">,<\/span><span style=\"color: red\">&#8216;NVARCHAR(MAX)&#8217;<\/span><span style=\"color: gray\">)<\/span><\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: gray\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New'\">\u00a0\u00a0\u00a0\u00a0\u00a0 <span style=\"color: blue\">exec<\/span> <span style=\"color: maroon\">sp_executesql<\/span>@SQL<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">END<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">\u00a0<\/span><br \/>\n<span style=\"font-size: 10.0pt;font-family: 'Courier New';color: blue\">GO<\/span><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Here is a Windows Powershell function I wrote to call a generic stored procedure that will rebuild all indexes in a database. \u00a0(I found the stored procedure here:\u00a0http:\/\/www.wisesoft.co.uk\/scripts\/t-sql_defrag_indexes_for_database.aspx) This turns out to be extremely useful for rebuilding indexes on a SQL Server-based connected directory at the end of each run of a Microsoft Forefront Identity &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/nicoleroy.net\/blog\/?p=35\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Rebuilding T-SQL Indexes From Powershell&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[206],"tags":[49,50,48,56,51,54,55,52,53],"class_list":["post-35","post","type-post","status-publish","format-standard","hentry","category-identity-2","tag-fim","tag-forefront-identity-manager","tag-ilm","tag-index-rebuild","tag-microsoft-sql-server","tag-powershell","tag-script","tag-t-sql","tag-windows-powershell"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/s8dkOC-35","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=35"}],"version-history":[{"count":7,"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions"}],"predecessor-version":[{"id":267,"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/35\/revisions\/267"}],"wp:attachment":[{"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=35"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=35"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nicoleroy.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}