<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Developer hearted / Relational minded</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jenss/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jenss/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:12:36 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>[Updated]: Light weight SQL Server procedure auditing without using SQL Server auditing version 0.3.0.0</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/updated-light-weight-sql-server-procedure-auditing-without-using-sql-server-auditing-version-0-3-0-0</link>
      <pubDate>Tue, 05 May 2015 00:22:39 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2015/05/05/updated-light-weight-sql-server-procedure-auditing-without-using-sql-server-auditing-version-0-3-0-0/</guid>
      <description><![CDATA[&#160;  (The new solution can be downloaded here)  (The detailed Information of the solution is...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p><a href="https://www.sqlserver2005.de/Link.aspx?ID=68">(The new solution can be downloaded here)</a></p>  <p><strong>(The detailed Information of the solution is mentioned <a href="https://blogs.msdn.com/b/jenss/archive/2010/07/10/light-weight-sql-server-procedure-auditing-without-using-sql-server-auditing-version-2.aspx">here</a>)</strong></p>  <p>After having seeing the solution settled in numerous projects and getting great feedback from you, I added the following request to the solution. </p>  <h3>Out-of-transaction support for Procedure Logging</h3>  <p>While you might run the logging within your own crafted transactions, there might be situations where the transaction is rolled back due to a failure or within one of your test cases. In that case and because that the logging framework executes directly within the transaction context of the injected procedure, the log records won’t be preserved either. For this, I added the support of bringing in a linked server which is doing a non-participating transaction. The additional parameters which are outlined as below:</p>  <ul>   <li>@LogServerName: Defines the linked server name where the log data is pushed to, the server need to exists upon the injection of the procedure code. </li>    <li>@LogDatabaseName: Defines the database name where the log data is pushed to, the database need to exists upon the injection of the procedure code. </li>    <li>@PassCurrentProcessUser: If you are using a linked server not with delegated credentials and are using a fixed mapped user and password, the identity would change when the logging is persited. Therefore you can specify if an extra parameter value should be passed, identifying the original caller of the procedure. </li> </ul>  <p>&#160;</p>  <ul>   <li><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/4848.image_66D9487D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/4848.image_5F00_66D9487D.png"><img title="image" style="border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/1777.image_thumb_21C30BF8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/1777.image_5F00_thumb_5F00_21C30BF8.png" width="774" height="363" /></a> </li> </ul>  <p><strong>While this is open source, you can change the code on your needs. If you though have a brilliant idea on how to make things better, let me know and we will get this back in with credits to yours.</strong></p>  <p><strong>-Jens</strong></p>]]></content:encoded>
    </item>
    <item>
      <title>Setting things in the right compatibility view (Visual Studio 2005 / 2008 / 2010 / 2012 / 2013 / BIDS / BI Development SSAS SSIS SSRS SSDT, SQL Server 2005 / 2008 / 2008R2 / 2012 / 2014)</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/setting-things-in-the-right-compatibility-view-visual-studio-2005-2008-2010-2012-2013-bids-bi-development-ssas-ssis-ssrs-ssdt-sql-server-2005-2008-2008r2-2012-2014</link>
      <pubDate>Tue, 24 Jun 2014 06:54:00 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2014/06/24/setting-things-in-the-right-compatibility-view-visual-studio-2005-2008-2010-2012-2013-bids-bi-development-ssas-ssis-ssrs-ssdt-sql-server-2005-2008-2008r2-2012-2014/</guid>
      <description><![CDATA[&nbsp;
A very common request and question is (as I have to confess that this is confusing) is which...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>A very common request and question is (as I have to confess that this is confusing) is which version of SQL Server (SSMS - SQL Server Management Studio, BIDS - Business Intelligence Development Studio, VS- Visual Studio) does works together with which version of SQL Sever which target version and which project type. Here is a complete list to be updated through the versions of SQL Sever and the lifecycle of Visual Studio:</p>
<table style="width: 400px;" border="1" cellspacing="0" cellpadding="2">
<tbody>
<tr>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">
<p><strong>Visual Studio 2005</strong></p>
<p>&nbsp;</p>
<p><strong>&nbsp;</strong></p>
</td>
<td valign="top" width="66">
<p><strong>Visual Studio 2008</strong></p>
</td>
<td valign="top" width="66">
<p><strong>Visual Studio 2010</strong></p>
</td>
<td valign="top" width="66">
<p><strong>Visual Studio 2012</strong></p>
</td>
<td valign="top" width="66">
<p><strong>Visual Studio 2013</strong></p>
</td>
</tr>
<tr>
<td valign="top" width="66"><strong>Framework</strong></td>
<td valign="top" width="66">
<p>.NET 2.0</p>
</td>
<td valign="top" width="66">
<p>.NET 2.0</p>
<p>.NET 3.0</p>
<p>.NET 3.5</p>
</td>
<td valign="top" width="66">
<p>.NET 2.0</p>
<p>.NET 3.0</p>
<p>.NET 3.5</p>
<p>.NET 4.0</p>
</td>
<td valign="top" width="66">
<p>.NET 2.0</p>
<p>.NET 3.0</p>
<p>.NET 3.5</p>
<p>.NET 4.0</p>
<p>.NET 4.5</p>
</td>
<td valign="top" width="66">
<p>.NET 2.0</p>
<p>.NET 3.0</p>
<p>.NET 3.5</p>
<p>.NET 4.0</p>
<p>.NET 4.5</p>
</td>
</tr>
<tr>
<td valign="top" width="66"><strong>SSDT / SQL tooling in Visual Studio (built into VS, non-BI)</strong></td>
<td valign="top" width="66">N/A</td>
<td valign="top" width="66">N/A</td>
<td valign="top" width="66">N/A</td>
<td valign="top" width="66">SQL 2005 - SQL 2014 inclusive</td>
<td valign="top" width="66">SQL 2005 - SQL 2014 inclusive</td>
</tr>
<tr>
<td valign="top" width="66"><strong>BIDS overall compat. <br />(SSRS, SSIS, SSAS)</strong></td>
<td valign="top" width="66">SQL 2005</td>
<td valign="top" width="66">SQL 2008/R2</td>
<td valign="top" width="66">SQL 2012</td>
<td valign="top" width="66">SQL 2012</td>
<td valign="top" width="66">
<p>SQL 2014</p>
</td>
</tr>
<tr>
<td valign="top" width="66"><strong>SSRS</strong></td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">SQL 2008R2 - SQL 2014</td>
</tr>
<tr>
<td valign="top" width="66"><strong>SSAS</strong></td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">SQL 2008R2 - SQL 2014</td>
</tr>
<tr>
<td valign="top" width="66"><strong>SSIS</strong></td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">&nbsp;</td>
<td valign="top" width="66">SQL 2014</td>
</tr>
</tbody>
</table>
<p>-Jens</p>]]></content:encoded>
    </item>
    <item>
      <title>Bulk Backup and Restore at the tip of your finger &lt;New version&gt;</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/bulk-backup-and-restore-at-the-tip-of-your-finger-new-version</link>
      <pubDate>Wed, 14 May 2014 10:54:58 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2014/05/14/bulk-backup-and-restore-at-the-tip-of-your-finger-new-version/</guid>
      <description><![CDATA[&#160;  Thanks to all the users, contributors and reviewers of the backup and restore procedure I...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>Thanks to all the users, contributors and reviewers of the backup and restore procedure I once write for SQL Server databases. </p>  <p>If anyone does not know about this, more information can be found here (<a title="https://blogs.msdn.com/b/jenss/archive/2011/09/08/bulk-backup-and-restore-at-the-tip-of-your-finger.aspx" href="https://blogs.msdn.com/b/jenss/archive/2011/09/08/bulk-backup-and-restore-at-the-tip-of-your-finger.aspx">https://blogs.msdn.com/b/jenss/archive/2011/09/08/bulk-backup-and-restore-at-the-tip-of-your-finger.aspx</a>)</p>  <p>I revamped the procedure to be agnostic to SQL Server &gt;2012 as well as the schema changed in the meantime. </p>  <p>The new version of the code can be downloaded <a href="https://www.sqlserver2005.de/link.aspx?id=67">here</a>.</p>  <p>-Jens</p>  <p>PS: Thanks to:</p>  <ul>   <li>Christopher Wang</li>    <li>Josh Obudzinski</li> </ul>]]></content:encoded>
    </item>
    <item>
      <title>[Updated]: Light weight SQL Server procedure auditing without using SQL Server auditing version 0.2.1.0</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/updated-light-weight-sql-server-procedure-auditing-without-using-sql-server-auditing-version-0-2-1-0</link>
      <pubDate>Fri, 15 Mar 2013 02:32:00 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/03/15/updated-light-weight-sql-server-procedure-auditing-without-using-sql-server-auditing-version-0-2-1-0/</guid>
      <description><![CDATA[&nbsp;
The most recent version can be found here
(The detailed Information of the solultion is...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><strong><em>The most recent version can be found </em><a href="https://www.sqlserver2005.de/Link.aspx?ID=66"><em>here</em></a></strong></p>
<p><strong>(The detailed Information of the solultion is mentioned <a href="https://blogs.msdn.com/b/jenss/archive/2010/07/10/light-weight-sql-server-procedure-auditing-without-using-sql-server-auditing-version-2.aspx">here</a>)</strong></p>
<p>I created a minor update for the logging functionality in order to find the right entry point for injecting the code.</p>
<p>It turned out that finding the occurence of the beginning of the body text does not work if supplement characters are present after the &ldquo;AS&rdquo; keyword, stopping the whole process of applying logging to all procedures. I now check the occurence and throw an error if the statement is not formed as expected, but will proceed with remaining procedures.</p>
<p>-Jens</p>]]></content:encoded>
    </item>
    <item>
      <title>Finally, the family…united. SQL Server BI Project templates now available in Visual Studio 2012</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/finally-the-familyunited-sql-server-bi-project-templates-now-available-in-visual-studio-2012</link>
      <pubDate>Wed, 06 Mar 2013 22:40:40 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/03/06/finally-the-familyunited-sql-server-bi-project-templates-now-available-in-visual-studio-2012/</guid>
      <description><![CDATA[&#160;  Update( 30.06.2014):   Beside the below mentioned information, I have written an updated...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p align="left"><strong><em><font style="background-color: #ffff00"><u>Update( 30.06.2014): </u></font></em></strong></p>  <p align="left"><strong><em><font style="background-color: #ffff00">Beside the below mentioned information, I have written an updated compatibility sheet for the avaialable combinations or Visual Studio / SQL Server and the BI templates which is published </font></em></strong><a href="https://blogs.msdn.com/b/jenss/archive/2014/06/24/setting-things-in-the-right-compatibility-view-visual-studio-2005-2008-2010-2012-2013-bids-bi-development-ssas-ssis-ssrs-ssdt-sql-server-2005-2008-2008r2-2012-2014.aspx"><strong><em><font style="background-color: #ffff00">here</font></em></strong></a>.</p>  <p><font size="3">We waited and hoped and now we finally have them. SQL Server BI project templates in Visual Studio 2012. </font></p> <font size="3"></font>  <p><font size="3">This includes</font></p> <font size="3"></font>  <ul>   <li><font size="3">Project templates for</font>       <ul>       <li><font size="3">SSAS Analysis services projects (.dwproj)</font> </li>        <li><font size="3">SSRS Reporting services projects (.rptproj)</font> </li>        <li><font size="3">SSIS Integration services projects (.dtproj)</font> </li>     </ul>   </li> </ul>  <p><font size="3"></font></p>  <p><font size="3">More Information about this can be found here: <a title="https://blogs.msdn.com/b/sqlrsteamblog/archive/2013/03/06/sql-server-data-tools-business-intelligence-for-visual-studio-2012-released-online.aspx" href="https://blogs.msdn.com/b/sqlrsteamblog/archive/2013/03/06/sql-server-data-tools-business-intelligence-for-visual-studio-2012-released-online.aspx">https://blogs.msdn.com/b/sqlrsteamblog/archive/2013/03/06/sql-server-data-tools-business-intelligence-for-visual-studio-2012-released-online.aspx</a></font></p>  <p><font size="3"></font></p>  <p><font size="3">The direct download link is </font></p>  <h3><a href="https://www.microsoft.com/en-us/download/details.aspx?id=36843">Microsoft SQL Server Data Tools - Business Intelligence for Visual Studio 2012</a> (<a title="https://www.microsoft.com/en-us/download/details.aspx?id=36843" href="https://www.microsoft.com/en-us/download/details.aspx?id=36843">https://www.microsoft.com/en-us/download/details.aspx?id=36843</a>)</h3>  <p>&#160;</p>  <p>&#160;</p>  <p>&#160;</p>  <p><font style="background-color: rgb(255,255,0)">Be aware of the following:</font></p>  <ul>   <li><font style="background-color: rgb(255,255,0)">Select “New instance” on the installation dialog if you have SQL Server x64 installed. Otherwise, you probably get the error &quot;The CPU architecture of installing feature(s) is different than the instance specified. To continue, add features to this instance with the same architecture.&quot;</font> </li> </ul>  <p>&#160;</p>  <p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/3173.image_3B5B6E24.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/3173.image_5F00_3B5B6E24.png"><img title="image" style="background-image: none; display: inline" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/7752.image_thumb_0D21726A.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/7752.image_5F00_thumb_5F00_0D21726A.png" width="533" height="222" /></a></p>  <p>&#160;</p>  <p><font size="3">A big thanks to the team making this happen ! <img class="wlEmoticon wlEmoticon-smile" alt="Smiley" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/5543.wlEmoticon-smile_2E5B8DE3.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/5543.wlEmoticon_2D00_smile_5F00_2E5B8DE3.png" /></font></p>  <p><font size="3"></font></p>  <p><font size="3">-Jens</font></p>  <p><font size="3"></font></p>]]></content:encoded>
    </item>
    <item>
      <title>SQL Server Reporting Services Load Simulator v 0.2.0.0</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/sql-server-reporting-services-load-simulator-v-0-2-0-0</link>
      <pubDate>Mon, 25 Feb 2013 15:23:00 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/02/25/sql-server-reporting-services-load-simulator-v-0-2-0-0/</guid>
      <description><![CDATA[( Download at the end of the blog entry )
&nbsp;
Testing with realistic parameter sets 
Ever...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size: x-small;"><strong><em>( Download at the end of the blog entry )</em></strong></span></p>
<p>&nbsp;</p>
<p><span style="font-family: Segoe UI; font-size: x-small;"><strong>Testing with realistic parameter sets </strong></span></p>
<p><span style="font-size: x-small;">Ever wanted to test your SQL Server Reporting Services infrastructure against a realistic workload? Most often the problem is where to get the realistic data (parameter sets, a good weight of the different rendering formats) from. </span></p>
<h5><span style="font-family: Segoe UI; font-size: x-small;"><span style="font-weight: bold;">You already have the data </span></span></h5>
<p><span style="font-size: x-small;">If you deployed an environment, you already hold the solution in your hand. You can grab the information from the execution log of the Reporting Services database and generate requests to the new environment. Doing this you need access to the view <em>dbo.ExecutionLog3</em> which can be found in the ReportServer content database of SSRS. Without going into too much details as already described in the MSDN article </span><a href="https://msdn.microsoft.com/en-us/library/ms159110.aspx"><span style="font-size: x-small;">https://msdn.microsoft.com/en-us/library/ms159110.aspx</span></a><span style="font-size: x-small;"> you query some of the attributes stored upon every execution of a report, compose your WebRequest and fire it against the Reporting Services WebService.</span></p>
<h5><span style="font-family: Segoe UI; font-size: x-small;"><span style="font-weight: bold;">You already have the tool </span></span></h5>
<p><span style="font-size: x-small;">With this you will be able to replay certain reporting service data workloads with historic report executions. To make it just easier for you, I created a powershell script being able to point to any database having the <em>dbo.ExecutionLog3</em> view and do the work. If you don&acute;t have direct access to the ReportServer meta data database, you can also point to any database containing a copy / materialized view of the table, making it possible for administrators to give you access to the data but not the complete database. <br />As you see, you have some parameters to start the application, the parameters are also described in the SplashScreen of the application itself. <br /></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/5417.image_630A5BE7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/5417.image_5F00_630A5BE7.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/8551.image_thumb_5C76DC57.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/8551.image_5F00_thumb_5F00_5C76DC57.png" alt="image" width="558" height="223" border="0" /></a></p>
<p>THe following paramaters can be used:</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table style="width: 495px;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="103">
<p><strong>Parameter</strong></p>
</td>
<td width="390">
<p><strong>Explanation - Sample</strong></p>
</td>
</tr>
<tr>
<td width="105">
<p>-WebServiceUrl</p>
</td>
<td width="389">
<p>-&gt; Web Service adress to the report server</p>
</td>
</tr>
<tr>
<td width="106">&nbsp;</td>
<td width="388">
<p>e.g. "https://MyServer/ReportServer/Pages/ReportViewer.aspx</p>
</td>
</tr>
<tr>
<td width="107">
<p>-ConnectionString</p>
</td>
<td width="387">
<p>-&gt; Connection string to the report server database</p>
</td>
</tr>
<tr>
<td width="108">&nbsp;</td>
<td width="386">
<p>e.g. "Data Source=MyServer;Initial Catalog=ReportServer;Integrated Security=true</p>
</td>
</tr>
<tr>
<td width="109">
<p>-SaveFiles</p>
</td>
<td width="385">
<p><span style="text-decoration: underline;"><a href="https://codebox/ssrsls/Wiki/View.aspx?title=Y&amp;referringTitle=Home">-&gt; Specifies whether to save the rendered files on disk Y</a></span></p>
</td>
</tr>
<tr>
<td width="110">&nbsp;</td>
<td width="385">
<p>e.g. "Y - will save the files on disk</p>
</td>
</tr>
<tr>
<td width="110">
<p>-WorkingDir</p>
</td>
<td width="385">
<p>-&gt; Specifies the directory to save the file if specified</p>
</td>
</tr>
<tr>
<td width="110">&nbsp;</td>
<td width="385">
<p>e.g. "C:\Temp\SomeDir or .\SomeDir</p>
</td>
</tr>
<tr>
<td width="110">
<p>-ExcludedReports</p>
</td>
<td width="385">
<p>-&gt; Specifies report paths that should be excluded from the workload</p>
</td>
</tr>
<tr>
<td width="110">&nbsp;</td>
<td width="385">
<p>e.g. "\ReportPath1\SampleReport;\ReportPath2,SomeReport )delimited by semicolumn</p>
</td>
</tr>
<tr>
<td width="110">
<p>-IncludedReports</p>
</td>
<td width="385">
<p>-&gt; Specifies report paths that should be exclusivly included in the workload</p>
</td>
</tr>
<tr>
<td width="110">&nbsp;</td>
<td width="385">
<p>e.g. "\ReportPath1\SampleReport;\ReportPath2,SomeReport ) delimited by semicolumn</p>
</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<p><span style="font-size: x-small;">As the application can be simply started without having any prerequisites, the only requirements is to have powershell installed (most of the clients do have powershell) as well as access to the mentioned Reporting Services <em>ExecutionLog3</em> table / view. With that, the application can be even started in multiple sessions and computer putting some workload on your servers  <br /></span></p>
<p><span style="font-size: x-small;">This is a version 0.2.0, so work is still in progress, if you have any questions or any useful additions to it, let me know.</span></p>
<p>&nbsp;</p>
<p><em><span style="font-size: medium;"><a href="https://www.sqlserver2005.de/Link.aspx?ID=65"><strong>(Download the version here)</strong></a></span></em></p>
<p><em></em>&nbsp;</p>
<p><em><span style="font-size: medium;">-Jens</span></em></p>]]></content:encoded>
    </item>
    <item>
      <title>PowerShell StdOut go out, StdErr go everywhere</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/powershell-stdout-go-out-stderr-go-everywhere</link>
      <pubDate>Thu, 14 Feb 2013 12:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/02/14/powershell-stdout-go-out-stderr-go-everywhere/</guid>
      <description><![CDATA[&nbsp;
While becoming familiar and a really big fan of PowerShell, I faced the following issue....]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><span style="font-size: small;">While becoming familiar and a really big fan of PowerShell, I faced the following issue. During a migration project doing bulk migrations, I needed information Messages (coming to StdOut) as well as error message (coming to StdErr) displayed to the Console. Well that is quite easy as being the standard behavior. The challenge was, that error in addition needed to be duplicated in an error file, that in case of an error you can simply grab all the non 0kb files and do through them in order to investigate the errors. </span></p>
<p><span style="font-size: small;">It sorted out that this wasn&acute;t easy at all as the output once being redirected cannot be easily duplicated. </span></p>
<p><span style="font-size: small;">There were actually solution (which I could post as well if you are interested) including the tee object as well as the option to create a wrapper script, redirect the error output, read it at the end of the execution and write it to the console. But this wouldn&szlig;&acute;t be as natural as having the error message at the exact place where it happens (which could somewhere in between).</span></p>
<p><span style="font-size: small;">My colleague Dongbo Wang then pointed me in the right direction. For an easier repro as well as giving him the credits for this idea, here is what we came up with:</span></p>
<p><span style="font-size: small;">The sample execution file contains several command, simulating normal messages as well as an error message:</span></p>
<p>&nbsp;</p>
<div class="csharpcode">
<pre class="alt">Write-Output <span class="str">"Before the error"</span> </pre>
<pre>Write-Output <span class="str">"================"</span> </pre>
<pre class="alt">Write-Error <span class="str">"Here is the error"</span> </pre>
<pre>Write-Output <span class="str">"================"</span> </pre>
<pre class="alt">Write-Output <span class="str">"After the error"</span></pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
</div>
<p><span style="font-size: small;">For this sample we should be able to see the error message after the "Before" message and Before the after message.</span></p>
<p><span style="font-size: small;">So save the above made statements to a script file psscript.ps1 and execute it with the following command: </span></p>
<p>&nbsp;</p>
<pre class="alt">.\psscript.ps1 2&gt;&amp;1 | % { <span class="kwrd">if</span> ($_ -<span class="kwrd">is</span> [System.Management.Automation.ErrorRecord]) </pre>
<pre class="alt">{ $_ | Out-File -Append .\Errors.txt } $_ }</pre>
<p>&nbsp;</p>
<p><span style="font-size: small;">So what happens here ? The messages (being objects) are piped and checked for their message type; if being of type [System.Management.Automation.ErrorRecord] they are collected and appended in a loop to the specified output error file. So what we get here is the output of</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/2476.image_2D8E3C64.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/2476.image_5F00_2D8E3C64.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/5008.image_thumb_07B81601.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/5008.image_5F00_thumb_5F00_07B81601.png" alt="image" width="521" height="260" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">and the error message within the created text file Errors.txt:</span></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/2867.image_5E60CE02.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/2867.image_5F00_5E60CE02.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/7624.image_thumb_2AB861A4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/7624.image_5F00_thumb_5F00_2AB861A4.png" alt="image" width="519" height="331" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">-Jens</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Blog Resources online again !</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/blog-resources-online-again</link>
      <pubDate>Fri, 08 Feb 2013 07:38:58 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/02/08/blog-resources-online-again/</guid>
      <description><![CDATA[&#160;  I will write everyone who directed me directly again, but for those watching the blog, the...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p>I will write everyone who directed me directly again, but for those watching the blog, the ressources linked in the blog entries are online again..finally. Thanks for all your patience !</p>  <p>-Jens</p>]]></content:encoded>
    </item>
    <item>
      <title>Where have all the objects gone, long time passing ? (Version 0.1.0)</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/where-have-all-the-objects-gone-long-time-passing-version-0-1-0</link>
      <pubDate>Wed, 30 Jan 2013 12:31:00 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/01/30/where-have-all-the-objects-gone-long-time-passing-version-0-1-0/</guid>
      <description><![CDATA[&nbsp;
(You find the script at the end of the blog post)
&nbsp;
People who inherit databases...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p><span style="text-decoration: underline;">(You find the script at the end of the blog post)</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">People who inherit databases encounter often the same problem. They either don&acute;t have the time &ldquo;learning&rdquo; the internals / logic of the existing objects within that database, or the learning curve and the time needed is too high for getting started. So cleaning up databases or checking for internal consistency is avoided in order &ldquo;not to touch a running system&rdquo;. </span></p>
<p><span style="font-size: small;">So, simple things get out of focus like</span></p>
<p>&nbsp;</p>
<ul>
<li><span style="font-size: small;"><strong>Is the object used anymore by some internal database business logic ?</strong></span></li>
<li><span style="font-size: small;"><strong>Is the object being referenced by any objects in the database ?</strong></span></li>
<li><span style="font-size: small;"><strong>Does the object have any reference in the database to objects that do not exist anymore ?</strong></span></li>
<li><span style="font-size: small;"><strong>When was the table accessed the last time ? Am I able to delete it as not being referenced for a decent amount of time ? <em>(Will be covered in one of the next blog posts)</em></strong></span></li>
</ul>
<p>&nbsp;</p>
<p><span style="font-size: small;">To be clear, due to the existing dynamic nature of TSQL, not all questions can be answered exactly. But for the object information being modelled by the engine, the questions we have to ask the engine and the answers can be quite easy. I will concentrate on some of the most asked questions here and provide some scripts for you in order to try them on your databases as well, finding the information easily.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>Hello ? Does anyone care about me ?</strong></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: small;">This is a quite easy thing. Beginning with SQL Server 2008, there are special views showing the interactions between existing database schema elements like tables / views / procedures. Without going into detail, I would encourage you to take a look at the system view <strong>sys.dm_sql_referencing_entities</strong> (</span><a href="https://msdn.microsoft.com/en-us/library/bb630351(v=SQL.100).aspx"><span style="font-size: small;">MSDN</span></a><span style="font-size: small;">) as in the following sample:</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/2845.clip_image001_235B5155.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/2845.clip_5F00_image001_5F00_235B5155.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="clip_image001" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/1460.clip_image001_thumb_41C5923E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/1460.clip_5F00_image001_5F00_thumb_5F00_41C5923E.png" alt="clip_image001" width="641" height="291" border="0" /></a></span></p>
<p><span style="font-size: small;">Yay, easy, right ? I see that the SomeTable table is referenced by the view SomeView and that I should not easily drop it before checking with the creator / owner of the view.</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;"><span style="color: #ff0000;"><em>Here come the part with the dynamic TSQL culprit. As you can compose your TSQL statement on the fly and it would be compiled at runtime, the view will not find any references to statements like EXEC(&lsquo;SELECT SomeCol FROM dbo.SomeTable&rsquo;) as string will not be parsed for correctness. So checking with the table is only one step of checking for the references. If you are sure that nor internal logic of the database (like procedures) are doing not dynamic stuff, as well as not external APIs are creating access to the object, you should be cautious to delete it at this point.</em></span> </span></p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>Me ? I don&acute;t care about anyone else !</strong></span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Well, let&acute;s see if that is true. For this, the existing view <strong>sys.dm_sql_referenced_entities</strong> (</span><a href="https://msdn.microsoft.com/us-us/library/bb677185(v=sql.100).aspx"><span style="font-size: small;">MSDN</span></a><span style="font-size: small;">) can be used. It will show all the objects that are being referenced by the passed in object. For our sample above, this would turn out to be:</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;"><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/4405.clip_image002_693C5EA8.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/4405.clip_5F00_image002_5F00_693C5EA8.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="clip_image002" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/3823.clip_image002_thumb_27C1AC4F.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/3823.clip_5F00_image002_5F00_thumb_5F00_27C1AC4F.png" alt="clip_image002" width="613" height="158" border="0" /></a></span></p>
<p><span style="font-size: small;">You see that the referenced table itself as well as the used columns are mentioned in here.</span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: medium;"><strong>So lonely here&hellip; Where have all the objects gone ?</strong></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Now you know how to find the referenced as well the the referencing objects. But what if I pull the rug / objects from under the referencing objects ? For schema bound objects (objects created WITH SCHEMABINDING) the answer is easy.. you can&acute;t. But due to the restrictions you have with this option most of the objects in the real world are created "loosely" coupled without schema binding. If someone removes the referenced object from the referencing object, noone would ever know unless you execute / query the referencing object at runtime. </span></p>
<p><span style="font-size: small;">For a view you could find that easily using the sp_refreshview procedure. This will show you the following error:</span></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/3010.image_462BED38.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/3010.image_5F00_462BED38.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/0361.image_thumb_44E75459.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/0361.image_5F00_thumb_5F00_44E75459.png" alt="image" width="608" height="190" border="0" /></a></p>
<p>&nbsp;</p>
<p><br /><span style="font-size: small;"> But what about procedures, functions, triggers ? You can mark them for recompilation with sp_recompile, but this simply means that the query plan is thrown away and needs to be reevaluated before the next run. </span></p>
<p><span style="font-size: small;">Fortunately you have already learned one of the methods above to figure these things out. You can use the views mentioned above, as they will throw an error if any inconsistencies will be found. Wrapping this in a loop to go through all the objects as well as wrapping this into a TRY / CATCH block will get you all of the information you need. </span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/7711.image_185E2473.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/7711.image_5F00_185E2473.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/3414.image_thumb_2FA928E4.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/3414.image_5F00_thumb_5F00_2FA928E4.png" alt="image" width="609" height="505" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">At the end going through the views / procedures / functions and triggers, the script will output something similar on your databases:</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">Not only that the script will give you the Information about the objects that have wrong references, it will also give you the script to do a specific query finding the exact Information:</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">(The result)</span></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/3482.image_0D711D5E.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/3482.image_5F00_0D711D5E.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/1348.image_thumb_45436181.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/1348.image_5F00_thumb_5F00_45436181.png" alt="image" width="608" height="193" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">(The Messages)</span></p>
<p>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/4478.image_18BA319B.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/4478.image_5F00_18BA319B.png"><img style="border: 0px currentcolor; display: inline; background-image: none;" title="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/98/72/metablogapi/6138.image_thumb_0C8891A7.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-98-72-metablogapi/6138.image_5F00_thumb_5F00_0C8891A7.png" alt="image" width="412" height="285" border="0" /></a></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">If you have any questions, let me know. The script is attached to the blog entry. Have fun and let me please know your results ! Looking forward to your experience with this ! Simply drop me a mail through the comment system or JensS(AtSymbolHere)Microsoft.com</span></p>
<p>&nbsp;</p>
<p><span style="font-size: small;">-Jens</span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/38/96/30/FindMissingReferences.sql" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-38-96-30/FindMissingReferences.sql">FindMissingReferences.sql</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Headless build can make you scratch your head (Part 1)</title>
      <link>https://docs.microsoft.com/archive/blogs/jenss/headless-build-can-make-you-scratch-your-head-part-1</link>
      <pubDate>Mon, 28 Jan 2013 00:15:42 GMT</pubDate>
      <dc:creator><![CDATA[Jens K. Suessmeyer -]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jenss/2013/01/28/headless-build-can-make-you-scratch-your-head-part-1/</guid>
      <description><![CDATA[&#160;  One big advantage over recent database projects is the ability to do headless build on a...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <p><font size="3">One big advantage over recent database projects is the ability to do headless build on a build controller. </font></p> <font size="3"></font>  <p>&#160;</p> <font size="3"></font>  <p><font size="3">There is no straight forward definition of a headless build. In summary you can describe it that only the needed prerequisites are installed for compiling and translating the bits. While for some compilations specific applications will have to be installed or even cannot be build without the IDE, headless builds use the builds machine build processor (for MSFT mostly msbuild.exe) and pulls only the needed .targets / satellite assemblies. </font></p> <font size="3"></font>  <p>&#160;</p> <font size="3"></font>  <p><font size="3">Doing headless builds need a specific set of assemblies installed and registered assemblies on the build controller. As there can be some problems associated preparing the prerequisites, this (and former) blog posts will emphasize some of them or at least those were you won´t be able to find an easy solution by yourself.</font></p> <font size="3"></font>  <p>&#160;</p> <font size="3"></font>  <p><font size="3">A good starting point for installing the prereqs is the following blog post. It provides you with the needed Basic for the best walkthrough.</font></p> <font size="3"></font>  <p>&#160;</p>  <p><a title="DACFX Sept 2012 Updates Break Headless Build" href="https://sqlproj.com/index.php/2012/10/dacfx-sept-2012-updates-break-headless-build/"><font size="3">DACFX Sept 2012 Updates Break Headless Build</font></a></p> <font size="3"></font>  <p>&#160;</p> <font size="3"></font>  <p><font size="3">Though, there can be some culprits and error messages you can run into, which do not seem to be obvious in the error messages at all. The following series will contain some of the problem you might encounter and will not be able to find simple solutions on the internet for.</font></p> <font size="3"></font>  <p>&#160; <br /></p>  <p><font size="3"><strong>Referencing dacpacs</strong></font></p>  <p><strong><font size="3"></font></strong></p>  <p><font size="3">You encounter the following error:</font></p>  <p><font size="3"></font></p>  <p><font color="#ff0000" size="3"><strong>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets (465): File &quot;C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac&quot; does not exist.</strong></font></p> <strong><font color="#ff0000"></font></strong>  <p><font size="3"></font><strong><font color="#ff0000">&#160;</font></strong></p>  <p><font size="3">This works on your Visual Studio machine as you have full blown set of files installed on the machine. On build controllers / the Team Foundation Server you normally don´t find them if you don´t have Visual Studio (and I don´t mean the Shell) installed. The source of the mentioned directory is constructed from your .sqlproj file containing the references:</font></p>  <p>&#160;</p>  <pre class="csharpcode">  <span class="kwrd">&lt;</span><span class="html">ItemGroup</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ArtifactReference</span> <span class="attr">Include</span><span class="kwrd">=&quot;$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">HintPath</span><span class="kwrd">&gt;</span>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\master.dacpac<span class="kwrd">&lt;/</span><span class="html">HintPath</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">SuppressMissingDependenciesErrors</span><span class="kwrd">&gt;</span>False<span class="kwrd">&lt;/</span><span class="html">SuppressMissingDependenciesErrors</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">DatabaseVariableLiteralValue</span><span class="kwrd">&gt;</span>master<span class="kwrd">&lt;/</span><span class="html">DatabaseVariableLiteralValue</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ArtifactReference</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;</span><span class="html">ArtifactReference</span> <span class="attr">Include</span><span class="kwrd">=&quot;$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\msdb.dacpac&quot;</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">HintPath</span><span class="kwrd">&gt;</span>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\110\SqlSchemas\msdb.dacpac<span class="kwrd">&lt;/</span><span class="html">HintPath</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">SuppressMissingDependenciesErrors</span><span class="kwrd">&gt;</span>False<span class="kwrd">&lt;/</span><span class="html">SuppressMissingDependenciesErrors</span><span class="kwrd">&gt;</span>
      <span class="kwrd">&lt;</span><span class="html">DatabaseVariableLiteralValue</span><span class="kwrd">&gt;</span>msdb<span class="kwrd">&lt;/</span><span class="html">DatabaseVariableLiteralValue</span><span class="kwrd">&gt;</span>
    <span class="kwrd">&lt;/</span><span class="html">ArtifactReference</span><span class="kwrd">&gt;</span>
  <span class="kwrd">&lt;/</span><span class="html">ItemGroup</span><span class="kwrd">&gt;</span>

</pre>


<p><font size="3">You see that a variable called $(DacPacRootPath) is used within the reference. This will be resolved by the above mentioned .targets file (C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\SSDT\Microsoft.Data.Tools.Schema.SqlTasks.targets) by the following conditions:</font></p>

<p><font size="3"></font></p>

<pre class="csharpcode"><span class="rem">&lt;!--Calculation of the system dac install path--&gt;</span> 
<span class="kwrd">&lt;</span> PropertyGroup<span class="kwrd">&gt;</span> 
   <span class="kwrd">&lt;</span><span class="html">DacPacRootPath</span><span class="kwrd">&gt;</span>$(VsIdePath)<span class="kwrd">&lt;/</span><span class="html">DacPacRootPath</span><span class="kwrd">&gt;</span> 
<span class="kwrd">&lt;</span> /PropertyGroup<span class="kwrd">&gt;</span>
</pre>


<p>&#160;</p>

<p><font size="3">which translates to the V(isual)S(tudio)IDEPath (VSIdePath) 
    <br /></font></p>
<font size="3"></font>

<p><font size="3"></font></p>

<pre class="csharpcode"><span class="rem">&lt;!--Calculation of the VS install path--&gt;</span>
 <span class="kwrd">&lt;</span><span class="html">PropertyGroup</span> <span class="attr">Condition</span><span class="kwrd">=&quot;'$(VisualStudioVersion)' == '10.0'&quot;</span><span class="kwrd">&gt;</span>
   <span class="kwrd">&lt;</span><span class="html">VsIdePath</span><span class="kwrd">&gt;</span>$(Registry:HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\10.0@InstallDir)<span class="kwrd">&lt;/</span><span class="html">VsIdePath</span><span class="kwrd">&gt;</span>
   <span class="kwrd">&lt;</span><span class="html">VsIdePath</span> <span class="attr">Condition</span><span class="kwrd">=&quot; $(VsIdePath) == ''&quot;</span> <span class="kwrd">&gt;</span>$(Registry:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\10.0@InstallDir)<span class="kwrd">&lt;/</span><span class="html">VsIdePath</span><span class="kwrd">&gt;</span>
 <span class="kwrd">&lt;/</span><span class="html">PropertyGroup</span><span class="kwrd">&gt;</span>
 <span class="kwrd">&lt;</span><span class="html">PropertyGroup</span> <span class="attr">Condition</span><span class="kwrd">=&quot;'$(VisualStudioVersion)' == '11.0'&quot;</span><span class="kwrd">&gt;</span>
   <span class="kwrd">&lt;</span><span class="html">VsIdePath</span><span class="kwrd">&gt;</span>$(Registry:HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\11.0@InstallDir)<span class="kwrd">&lt;/</span><span class="html">VsIdePath</span><span class="kwrd">&gt;</span>
   <span class="kwrd">&lt;</span><span class="html">VsIdePath</span> <span class="attr">Condition</span><span class="kwrd">=&quot; $(VsIdePath) == ''&quot;</span> <span class="kwrd">&gt;</span>$(Registry:HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\11.0@InstallDir)<span class="kwrd">&lt;/</span><span class="html">VsIdePath</span><span class="kwrd">&gt;</span>
 <span class="kwrd">&lt;/</span><span class="html">PropertyGroup</span><span class="kwrd">&gt;</span><br />
  </pre>

<p>&#160;</p>
<font size="3"></font>

<p><font size="3">The target is first searching for the existence of the regkey in the x64 path, id empty in the x86 path (WowNode) (at least for VS2012 = 11.0)</font></p>
<font size="3"></font>

<p><font size="3">If you don´t have the regkey set, you can set it to the appropriate one like on your dev machine, pointing to e.g. “C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE”. Under this directory you can create the file path as in the error message or simply copy the appropriate Folder to your build machine containing the needed .dacpacs.</font></p>
<font size="3"></font>

<p>
  <br /><font size="3"> After copying, MSBuild will be able to find the references and at least for this path would be able to resolve correctly.</font></p>
<font size="3"></font>

<p>
  <br /><font size="3">Another option would be to always copy your referenced system dacpacs to the local folder.
    <br /></font></p>

<p>&#160;</p>

<p><font size="3">-Jens</font></p>]]></content:encoded>
    </item>
  </channel>
</rss>