<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><title>GPWindow.com - Dynamics GP- GP TECH INFO &amp;gt; SQL Server</title><link>http://www.gpwindow.com/GP_TECH_INFO/SQL_Server/</link><description>Dynamics GP Resources, Download Links, Articles, Blogs </description><item><title>Understanding how Microsoft Dynamics GP works with Microsoft SQL Server continued</title> <link> http://blogs.msdn.com/developingfordynamicsgp/archive/2009/05/29/understanding-how-microsoft-dynamics-gp-works-with-microsoft-sql-server-continued.aspx</link><pubDate>Thu, 17 Jun 2010 02:10:55 GMT</pubDate></item><item><title>What is the best recovery model for SQL Server?</title> <link> http://forum.4penny.net/blogs/sqlserver/archive/2007/12/19/what-is-the-best-recovery-model-for-sql-server.aspx</link><description>&lt;p&gt;&lt;span&gt;From a recent email:&#160;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;What, in your opinion, is the best recovery model for a GP database?&#160; Full? Bulk_Logged? Simple?&#160; They all seem to have their pros &amp;amp; cons but I can&amp;#39;t find anyplace where someone says this model is better than the other two because of X, Y or Z reasons.&lt;br&gt;&#160;&lt;br&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A:&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Simple&lt;br&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span&gt;If you use Simple, transaction logging is disabled. Simply backing up&#160;the database will truncate the transaction logs. (If the logs are already too big, run this script &lt;a href=&quot;http://vstoolsforum.com/blogs/sqlserver/archive/2007/01/11/compact-sql-logs.aspx&quot;&gt;http://vstoolsforum.com/blogs/sqlserver/archive/2007/01/11/compact-sql-logs.aspx&lt;/a&gt;). So, &lt;strong&gt;if the client is OK with their restore point being last night, when the backups ran, then Simple is fine&lt;/strong&gt;. It&amp;#39;s easier to maintain. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Bulk_Logged&lt;br&gt;&lt;/strong&gt;I&amp;#39;ve never used Bulk_Logged, so I can&amp;#39;t speak to that. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;strong&gt;Full&lt;br&gt;&lt;/strong&gt;Usually the client will want to be able to restore a crashed server up to the last hour, so we use Full. Using Full, the act of running a transaction log backup is what truncates the log. &lt;strong&gt;So, you&amp;#39;re running a backup every evening and running transaction log backups every hour&lt;/strong&gt;. &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Some of the system databases don&amp;#39;t support Full, so I usually have two Maintenance Plans - one for the system dbs and one for the user dbs. I never use the &amp;#39;these specific databases&amp;#39; option because the next time that a database is added to the server, you&amp;#39;ll forget to add it to the backup. Choosing the &amp;#39;all user dababases&amp;#39; option stops that worry. &lt;/span&gt;&lt;/p&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;/span&gt;&lt;img src=&quot;http://forum.4penny.net/aggbug.aspx?PostID=780&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;</description><pubDate>Thu, 17 Jun 2010 18:14:34 GMT</pubDate></item><item><title>How to stop the transaction log of a SQL Server database from growing unexpectedly?</title> <link> http://mohdaoud.blogspot.com/2009/12/how-to-stop-transaction-log-of-sql.html</link><description>&lt;p&gt;Great article by Microsoft Support, check it out &lt;a href=&quot;http://support.microsoft.com/kb/873235/en-us&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Regards,    &lt;br&gt;--     &lt;br&gt;Mohammad R. Daoud     &lt;br&gt;MVP, MCP, MCBMSP, MCTS, MCBMSS     &lt;br&gt;Software Development Manager     &lt;br&gt;+962 - 79 - 999 65 85     &lt;br&gt;Great Package For Business Solutions     &lt;br&gt;&lt;a href=&quot;mailto:daoudm@greatpbs.com&quot;&gt;daoudm@greatpbs.com&lt;/a&gt;     &lt;br&gt;&lt;a href=&quot;http://www.greatpbs.com/&quot;&gt;http://www.greatpbs.com&lt;/a&gt;&lt;/p&gt;  &lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2189316327430810286-2935240619730064660?l=mohdaoud.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description><pubDate>Wed, 16 Jun 2010 20:12:50 GMT</pubDate></item><item><title>Microsoft Dynamics GP and SQL Server Collations</title> <link> http://dynamicsgpblogster.blogspot.com/2008/08/microsoft-dynamics-gp-and-sql-server.html</link><description>I have seen this question posted in multiple shapes and forms, but could well be rounded up as follows: &quot;&lt;em&gt;I installed Microsoft SQL Server with an Arabic_BIN collation. In addition, I installed Microsoft Dynamics GP on my server and a few clients. All my clients can access the system with no problems. However, I have this one user who 'accidentally' switched his/her Windows locale to English (United States) and is getting all sorts of errors when accessing the system or trying to enter transactions or master records&lt;/em&gt;.&quot;&lt;br&gt;&lt;br&gt;This is not at all uncommon, but to put an end to the myths sorrounding this issue it is necessary to understand how collations work in both Microsoft Windows and Microsoft SQL Server.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Windows Collations&lt;br&gt;&lt;/strong&gt;&lt;br&gt;Windows collations are collations defined for SQL Server to support Windows locales. By specifying a Windows collation for SQL Server, the instance of SQL Server uses the same code pages and sorting and comparison rules as the Microsoft Dynamics GP client that is running on a computer for which you have specified the associated Windows locale. For example, the French Windows collation for SQL Server matches the collation attributes of the French locale for Windows.&lt;br&gt;&lt;br&gt;There are more Windows locales than there are SQL Server Windows collations. The names of Windows locales are based on a language and territory, for example, French (Canada). However, several languages share common alphabets and rules for sorting and comparing characters. For example, 33 Windows locales, including all the Portuguese and English Windows locales, use the Latin1 code page (1252) and follow a common set of rules for sorting and comparing characters.&lt;br&gt;&lt;br&gt;The SQL Server Windows collation, based on the Latin1_General code page and sorting rules, supports all 33 of these Windows locales. Also, Windows locales specify attributes that are not covered by SQL Server Windows collations such as currency, date, and time formats. Because countries and regions such as Great Britain and the United States have different currency, date, and time formats, they require different Windows collations. They do not require different SQL Server collations, because they have the same alphabet and rules for sorting and comparing characters.&lt;br&gt;&lt;br&gt;In SQL Server, Windows collations are combined with a series of suffixes to additionally define sorting and comparison rules based on case, accent, kana, and width sensitivity.&lt;br&gt;&lt;br&gt;&lt;strong&gt;SQL Server Collations&lt;/strong&gt;&lt;br&gt;&lt;br&gt;SQL collations are a compatibility option to match the attributes of common combinations of code-page number and sort orders that have been specified in earlier versions of SQL Server. Many of these collations support suffixes for case, accent, kana, and width sensitivity, but not always.&lt;br&gt;&lt;br&gt;In SQL Server 2005, you should primarily use Windows collations. This is particularly true if you have a mix of Unicode and non-Unicode columns in your database. Windows collations actually apply Unicode-based sorting rules to both Unicode and non-Unicode data. This means that SQL Server internally converts non-Unicode data to Unicode to perform comparison operations. This provides consistency across data types in SQL Server and also provides developers with the ability to sort strings in their applications that use the same rules that SQL Server uses.&lt;br&gt;&lt;br&gt;SQL collations, on the other hand, apply non-Unicode sorting rules to non-Unicode data, and Unicode sorting rules to Unicode data, by using a corresponding Windows collation for the Unicode data. This difference can cause inconsistent results for comparisons of the same characters. Therefore, if you have a mix of Unicode and non-Unicode columns in your database, they should all be defined by using Windows collations so that the same sorting rules are used across Unicode and non-Unicode data.&lt;br&gt;&lt;br&gt;You should use SQL collations only to maintain compatibility with existing instances of earlier versions of SQL Server or to maintain compatibility in applications that were developed by using SQL collations in earlier versions of SQL Server.&lt;br&gt;&lt;br&gt;There can be differences in performance between Windows collations and SQL collations, but that would be topic for another blog.  For now, if you need to change your DYNAMICS or company databases collation, make sure to check back in the future where I will discuss a few methods to accomplish this.&lt;br&gt;&lt;br&gt;Until next post!&lt;br&gt;&lt;br&gt;MG.-&lt;br&gt;Mariano Gomez, MIS, MVP, MCP, PMP&lt;br&gt;Maximum Global Business, LLC&lt;br&gt;&lt;a href=&quot;http://www.maximumglobalbusiness.com/&quot;&gt;http://www.maximumglobalbusiness.com/&lt;/a&gt;</description><pubDate>Thu, 17 Jun 2010 18:13:55 GMT</pubDate></item><item><title>Auto Shrink and SQL Index Fragmentation</title> <link> http://msdynamicsgp.blogspot.com/2007/11/auto-shrink-and-sql-index-fragmentation.html</link><description>&lt;a href=&quot;http://www.sqlskills.com/AboutPaulSRandal.asp&quot;&gt;Paul Randall &lt;/a&gt;is a guy a I listen to in the SQL Server space. Eight and half years on the SQL Server team at Microsoft will do that.&lt;br&gt;&lt;br&gt;Today &lt;a href=&quot;http://www.sqlskills.com/blogs/paul/2007/11/13/AutoshrinkTurnItOFF.aspx&quot;&gt;Paul dropped a post on Auto Shrink for SQL Server &lt;/a&gt;and why it's bad. It causes severe index fragmentation for starters and Paul has the scripts to prove it, so you can reproduce the problem yourself. &lt;a href=&quot;http://www.sqlskills.com/blogs/paul/2007/11/13/AutoshrinkTurnItOFF.aspx&quot;&gt;Read the whole thing here.&lt;/a&gt;&lt;br&gt;&lt;br&gt;Ok so, Auto Shrink for waistline, good. Auto Shrink for SQL Server, Bad. Got it. Now all I have to do is find that Auto Shrink for waistline app.&lt;div&gt;
&lt;/div&gt;</description><pubDate>Mon, 21 Jun 2010 18:11:20 GMT</pubDate></item><item><title>What does SQL Maintenance really do?</title> <link> http://dynamicsgpblogster.blogspot.com/2008/11/what-does-sql-maintenance-really-do.html</link><description>This one comes &lt;a href=&quot;http://www.microsoft.com/communities/newsgroups/en-us/default.aspx?&amp;amp;lang=&amp;amp;cr=&amp;amp;guid=&amp;amp;sloc=en-us&amp;amp;dg=microsoft.public.greatplains&amp;amp;p=1&amp;amp;tid=6ab7f148-7447-4acf-862c-d0c6f268f227&amp;amp;mid=6ab7f148-7447-4acf-862c-d0c6f268f227&quot;&gt;straight off&lt;/a&gt; the Microsoft Dynamics GP newsgroup (even the title given to this article).&lt;br&gt;&lt;br&gt;&lt;strong&gt;Business Situation&lt;/strong&gt;&lt;br&gt;&lt;br&gt;During the course of a test upgrade the user came across a situation where records in a Smartlist table were not upgrading at all. In his attempts to have the upgrade bypass the problem, the user deleted the records from the SmartList table in question and the upgrade was able to succeed.&lt;br&gt;&lt;br&gt;Nonetheless, the user attempted to run a few of the built-in SQL Maintenance routines found under Microsoft Dynamics GP &amp;gt; Maintenance &amp;gt; SQL and came back empty handed. This series of routines did not correct the damaged records and did nothing in aiding the upgrade, which brings us to the question on the subject:&lt;br&gt;&lt;br&gt;&lt;strong&gt;What does SQL Maintenance really do?&lt;/strong&gt;&lt;br&gt;&lt;br&gt;This question can be answered by looking at what SQL Maintenance does not do. SQL Maintenance does not take any actions on table records, except of course, when you drop a table :-).&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_gKzBBe6N-cc/SSclOgl2Y4I/AAAAAAAAAXA/OMD9i1fZzuo/s1600-h/SQLMaintenance.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://2.bp.blogspot.com/_gKzBBe6N-cc/SSclOgl2Y4I/AAAAAAAAAXA/OMD9i1fZzuo/s320/SQLMaintenance.jpg&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;The routines found under SQL Maintenance are designed to perform preventative database maintenance and each option can be explained as follows:&lt;br&gt;&lt;br&gt;&lt;strong&gt;Recompile&lt;/strong&gt;&lt;br&gt;&lt;br&gt;As a database is changed by such actions as adding indexes or changing data in indexed columns, the original query plans used to access its tables should be optimized again by recompiling them. This optimization happens automatically the first time a stored procedure is run after Microsoft SQL Server is restarted. It also occurs if an underlying table used by the stored procedure changes. But if a new index is added from which the stored procedure might benefit, optimization does not happen until the next time the stored procedure is run after Microsoft SQL Server is restarted. In this situation, it can be useful to force the stored procedure to recompile the next time it executes&lt;br&gt;&lt;br&gt;Another reason to force a stored procedure to recompile is to counteract, when necessary, the &quot;parameter sniffing&quot; behavior of stored procedure compilation. When SQL Server executes stored procedures, any parameter values used by the procedure when it compiles are included as part of generating the query plan. If these values represent the typical ones with which the procedure is called subsequently, then the stored procedure benefits from the query plan each time it compiles and executes. If not, performance may suffer.&lt;br&gt;&lt;br&gt;When the Recompile option is selected in the SQL Maintenance window, GP forces the selected tables auto-stored procedures and triggers to recompile by executing the SQL Server &lt;strong&gt;sp_recompile&lt;/strong&gt; statement.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Update Statistics&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Update Statistics updates information about the distribution of key values for one or more statistics groups (collections) in the specified table or indexed view.&lt;br&gt;&lt;br&gt;The Database Engine keeps statistics about the distribution of the key values in each index and uses these statistics to determine which index or indexes to use in query processing. Users can create statistics on nonindexed columns by using the &lt;strong&gt;CREATE STATISTICS&lt;/strong&gt; statement. Query optimization depends on the accuracy of the distribution steps:&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;If there is significant change in the key values in the index, rerun &lt;strong&gt;UPDATE STATISTICS&lt;/strong&gt; on that index.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;If lots of data in an indexed column has been added, changed, or removed (that is, if the distribution of key values has changed), or the table has been truncated by using the TRUNCATE TABLE statement and then repopulated, use UPDATE STATISTICS.&lt;/li&gt;&lt;/ul&gt;To see when the statistics were last updated, use the &lt;strong&gt;STATS_DATE&lt;/strong&gt; function from SQL Server.&lt;br&gt;&lt;strong&gt;Drop Table&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Removes one or more table definitions and all data, indexes, triggers, constraints, and permission specifications for those tables. Drop table will not remove the associated table views or auto-stored procedures, hence, it is recommended to run the Drop Auto Procedure option in conjunction with this option. The Drop Table option executes SQL Server &lt;strong&gt;DROP TABLE&lt;/strong&gt; statement.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Create Table&lt;/strong&gt;&lt;br&gt;&lt;br&gt;The Create Table option creates a Dynamics GP table (that has been dropped with the Drop Table option or dropped from SQL Server) with the structure defined in the DYNAMICS.DIC dictionary file. When this option is executed, GP will check for the table existence and drop if it already exists. In addition, all table auto procedures (zDP_) will be dropped and recreated and security granted to the DYNGRP role.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Drop Auto Procedure&lt;/strong&gt;&lt;br&gt;&lt;br&gt;This option will remove all selected tables auto stored procedures. The zDP_ procedures aid Dynamics GP in retrieving, saving, updating, and deleting records from a table.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Create Auto Procedure&lt;/strong&gt;&lt;br&gt;&lt;br&gt;This option will create all selected tables auto stored procedures. If the procedures already exist, they are dropped and recreated.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Other Resources&lt;/strong&gt;&lt;br&gt;&lt;br&gt;Developing for Dynamics GP - &quot;&lt;a href=&quot;http://blogs.msdn.com/developingfordynamicsgp/archive/2008/10/06/what-do-the-zdp-auto-generated-stored-procedures-do.aspx&quot;&gt;What do the zDP auto-generated stored procedures do?&lt;/a&gt;&quot;, by David Musgrave.&lt;br&gt;&lt;br&gt;Developing for Dynamics GP - &quot;&lt;a href=&quot;http://blogs.msdn.com/developingfordynamicsgp/archive/2008/10/15/what-is-column-dessprkmhbbcreh.aspx&quot;&gt;What is Column desSPRkmhBBCreh?&lt;/a&gt;&quot;, by David Musgrave.&lt;br&gt;&lt;br&gt;Microsoft Developer's Network (MSDN) - You can always search &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms130214.aspx&quot;&gt;SQL Server Books Online&lt;/a&gt; for all topics outlined in this article.&lt;br&gt;&lt;br&gt;Until next post!&lt;br&gt;&lt;br&gt;MG.-&lt;br&gt;Mariano Gomez, MVP, MCP, PMP&lt;br&gt;Maximum Global Business, LLC&lt;br&gt;&lt;a href=&quot;http://www.maximumglobalbusiness.com/&quot;&gt;http://www.maximumglobalbusiness.com/&lt;/a&gt;</description><pubDate>Wed, 30 Jun 2010 08:03:34 GMT</pubDate></item><item><title>SQL Maintenance blooper</title> <link> http://janakirammp.blogspot.com/2009/08/sql-maintenance-blooper.html</link><description>&lt;div align=&quot;justify&quot;&gt;Sometime back I received a call from one of my clients. Client was having some system setup related issue that required a SQL Maintenance to be done. I quickly guided him over phone to go to MS Dynamics GP | Maintenance | SQL and select the required tables. Prior to this, I asked him if he kept a backup of DYNAMICS database and the answer was Yes. However, the system administrator of the client being new to the Dynamics GP environment (which I came to know only later) selected all tables by mistake and hit Drop Tables. Worst part was that there were users working online at this time. More worst was that after this happened, the new system administrator realized he doesn&#8217;t have a proper backup. Needless to say, the damage was real quick. All the users working online have been kicked out. There are several companies linked to the DYNAMICS database that got totally messed up. What would I do in this scenario? &lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;I realized there must be some way out. Then, came a flashing idea. Why can&#8217;t we try hooking up any old(not so old) copy of DYNAMICS to this. Started searching for the same in the server directories and could find a copy of DYNAMICS that was 2 months older. Client was lazy enough to keep proper backups. I restored this DYNAMICS database to the existing database. Yes, it worked. However, minor data loss in the form of say, a new user record created recently was not there, so, we could quickly create the same. Similar but minor issues like some users who are assigned modified reports security wasn&#8217;t out there so have to set it up. Finally, things are back up and running. I just told myself &#8220;Oh! Boy..Today is your day!&#8221;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;Why am I sharing this out here? Is to just let my readers know how scary it can be sometimes,&#160; SQL Maintenance, if not done without having proper backups.Which is why I always tell my clients to keep proper data backups prior to doing any SQL maintenance. Specially, these are certain tasks that are recommended to be done with the help of either the Partners or experienced System administrators unless otherwise trust me, You got to pay for it!&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;
&lt;b&gt;UPDATE&lt;/b&gt; : Please do see a word of caution on linked Notes&#160;from David Musgrave in the Comments. &lt;i&gt;Added on 18/08/2009&lt;/i&gt;&lt;br&gt;
&lt;br&gt;
Please do see a similar experience shared by Doug, David Musgrave and Mariano from the link in the comments&lt;i&gt;. Added on 19/08/2009&lt;br&gt;
&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/8754801996591026417-8346799381244525263?l=janakirammp.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/Dynamicsblogger/~4/DQhPQ9HGVBM&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description><pubDate>Thu, 17 Jun 2010 02:05:28 GMT</pubDate></item><item><title>For the Dynamics GP/SQL Junkie</title> <link> http://msdynamicsgp.blogspot.com/2007/12/for-dynamics-gpsql-junkie.html</link><description>I know there are some SQL junkies out there always looking for the next SQL script for Dynamics GP. You know who you are. Well, take a look at the &lt;a href=&quot;http://www.gp-dynamics.com/dynamics-gp-tips-and-tricks.asp&quot;&gt;SQL Scripts area on GP-Dynamics.com&lt;/a&gt;.&lt;br&gt;&lt;br&gt;I just stumbled on this today so I haven't tested any of these. As always, use SQL statements at your own risk.&lt;br&gt;&lt;br&gt;Oh, try not to overdue it!&lt;div&gt;
&lt;/div&gt;</description><pubDate>Mon, 21 Jun 2010 18:11:20 GMT</pubDate></item><item><title>Why you should upgrade to Microsoft SQL Server 2008&#8230;</title> <link> http://blogs.msdn.com/gp/archive/2009/05/29/why-you-should-upgrade-to-microsoft-sql-server-2008.aspx</link><pubDate>Thu, 17 Jun 2010 18:09:47 GMT</pubDate></item><item><title>Understanding how Microsoft Dynamics GP works with Microsoft SQL Server</title> <link> http://blogs.msdn.com/developingfordynamicsgp/archive/2009/05/22/understanding-how-microsoft-dynamics-gp-works-with-microsoft-sql-server.aspx</link><pubDate>Thu, 17 Jun 2010 02:10:56 GMT</pubDate></item><item><title>The inner workings of Microsoft Dynamics GP on Microsoft SQL Server</title> <link> http://dynamicsgpblogster.blogspot.com/2009/05/inner-workings-of-microsoft-dynamics-gp.html</link><description>&lt;a href=&quot;http://1.bp.blogspot.com/_gKzBBe6N-cc/SiBKsuSs51I/AAAAAAAAAsM/Yh_zxSRZHoQ/s1600-h/DavidMusgrave.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_gKzBBe6N-cc/SiBKsuSs51I/AAAAAAAAAsM/Yh_zxSRZHoQ/s200/DavidMusgrave.jpg&quot; /&gt;&lt;/a&gt;Unless you have been working with Dynamics GP from the days of Ctree and Btrieve, it is quite difficult to comprehend why Dynamics GP seems to behave (as in act up) in certain ways on SQL Server -- how would I say this... not quite like your other Windows applications that run on SQL Server.&lt;br&gt;&lt;br&gt;To understand some of these behavioral issues,&lt;strong&gt; David Musgrave&lt;/strong&gt; brings a two-part series on Understanding how Microsoft Dynamics GP works with Microsoft SQL Server -- if it was my article I would have labeled it &lt;em&gt;&lt;strong&gt;Dynamics GP technological idiosyncrasies&lt;/strong&gt;, &lt;/em&gt;but then again, I did not write it. :-)&lt;br&gt;&lt;br&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/developingfordynamicsgp/archive/2009/05/22/understanding-how-microsoft-dynamics-gp-works-with-microsoft-sql-server.aspx&quot;&gt;Part 1 of Understanding how Microsoft Dynamics GP works with Microsoft SQL Server&lt;/a&gt;&lt;/li&gt;&lt;br&gt;&lt;li&gt;&lt;a href=&quot;http://blogs.msdn.com/developingfordynamicsgp/archive/2009/05/29/understanding-how-microsoft-dynamics-gp-works-with-microsoft-sql-server-continued.aspx&quot;&gt;Part 2 of Understanding how Microsoft Dynamics GP works with Microsoft SQL Server&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Ever wonder why the cryptic table names and columns? A lot of it has to do with the origins of the application and the multiple operating systems and ISAM platforms supported back in the 80's and 90's. Know your Microsoft Dynamics GP history... in the early days, long before Microsoft SQL Server, Dynamics GP ran on the Mac OS platform and supported Ctree and Btrieve as file server platforms. I guess at the end of the day, the development team figured it would be a daunting effort to make those tables and columns names meaningful for SQL Server.&lt;br&gt;&lt;br&gt;Until next post!&lt;br&gt;&lt;br&gt;MG.-&lt;br&gt;Mariano Gomez, MVP&lt;br&gt;Maximum Global Business, LLC&lt;br&gt;&lt;a href=&quot;http://www.maximumglobalbusiness.com/&quot;&gt;http://www.maximumglobalbusiness.com&lt;/a&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5285970135510371565-1533085499146268586?l=dynamicsgpblogster.blogspot.com&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Jun 2010 18:12:51 GMT</pubDate></item><item><title>SQL Server 2008 R2 (Code name Kilimanjaro) with GP 10</title> <link> http://www.jivtesh.com/2010/05/sql-server-2008-r2-code-name.html</link><description>&lt;p&gt;An Important note if you are planning to setup GP 10 with the recently released SQL Server 2008 R2 - &lt;strong&gt;&lt;a href=&quot;https://mbs.microsoft.com/partnersource/documentation/systemrequirements/system_requirements_gp10.htm?printpage=false&quot;&gt;Service Pack 5 for Microsoft Dynamics GP 10.0 required&lt;/a&gt;.&lt;/strong&gt; Service Pack 5 is scheduled to be released in the summer of 2010. &lt;/p&gt;  &lt;p&gt;You would get the error - &#8220;your current SQL Server is not a supported version&#8221; if you try to install GP 10 with SQL 2008 R2.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_CWFEtpGz2iM/S-26I6eEm8I/AAAAAAAACbQ/a4oBiGvRKKQ/s1600-h/clip_image002%5B4%5D.jpg&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;clip_image002&quot; border=&quot;0&quot; alt=&quot;clip_image002&quot; src=&quot;http://lh3.ggpht.com/_CWFEtpGz2iM/S-26J_1aalI/AAAAAAAACbU/3p0PVPc8UHI/clip_image002_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;597&quot; height=&quot;407&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://mbs.microsoft.com/customersource/documentation/systemrequirements/mdgp2010_system_requirements.htm?printpage=false&quot;&gt;GP 2010 is supported out of the box&lt;/a&gt; - Microsoft SQL Server 2008 R2 - Enterprise Edition or Standard Edition&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=e081c894-e4ab-42df-8c87-4b99c1f3c49b&amp;amp;displaylang=en&quot;&gt;SQL Server 2008 has better support and integration for the PowerPivot&lt;/a&gt; feature in Office 2010 among many other things. People have reporting using PowerPivot with large amount of data. Microsoft says that with enough memory, 100 million rows can be imported.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Some other really cools things about SQL Server 2008 R2 &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;1. SQL Server 2008 R2 can now scale with Windows Server 2008 R2 up to 256 logical processors. &lt;/p&gt;  &lt;p&gt;2. Utility Control Point, which enables a centralized view of SQL Server instances and database applications and their utilization across the designated managed server group&lt;/p&gt;  &lt;p&gt;3. Utility Explorer that provides a tree view of the servers, and a dashboard with summary information on the servers.&lt;/p&gt;  &lt;p&gt;4. A new Unicode compression scheme, USC-2, can save up to 50% of storage requirements with Unicode data.&lt;/p&gt;  &lt;p&gt;Check out the SQL Server 2008 R2 Feature Pack &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=ceb4346f-657f-4d28-83f5-aae0c5c83d52&quot;&gt;here&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Video &lt;/h4&gt;  &lt;p&gt; Microsoft seems to be producing nice videos about everything &#8211; See R2 Videos here -&amp;#160; &lt;a href=&quot;http://www.microsoft.com/sqlserver/tour/en/videos.aspx&quot;&gt;http://www.microsoft.com/sqlserver/tour/en/videos.aspx&lt;/a&gt;&lt;/p&gt;  &lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/268736241887032504-8248270463458375047?l=www.jivtesh.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Jun 2010 18:14:40 GMT</pubDate></item><item><title>SQL Server Management Studio Standard Reports</title> <link> http://dynamicsgpblogster.blogspot.com/2009/07/sql-server-management-studio-standard.html</link><description>&lt;a href=&quot;http://3.bp.blogspot.com/_gKzBBe6N-cc/SlTUd7NBGaI/AAAAAAAAAyc/8eODwBlYbas/s1600-h/microsoft-sql-server-2008-logo.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://3.bp.blogspot.com/_gKzBBe6N-cc/SlTUd7NBGaI/AAAAAAAAAyc/8eODwBlYbas/s200/microsoft-sql-server-2008-logo.jpg&quot; /&gt;&lt;/a&gt;If you have worked with &lt;strong&gt;SQL Server Management Studio (SSMS)&lt;/strong&gt; in either &lt;strong&gt;Microsoft SQL Server 2005&lt;/strong&gt; or &lt;strong&gt;Microsoft SQL Server 2008&lt;/strong&gt;, you may have inadvertly overlooked one of its key features: &lt;strong&gt;Standard Reports&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Standard Reports are Reporting Services (SSRS) reports that can provide all sort of statuses and and information about the database engine and its management components and well as the databases themselves in real time -- the reports are refreshable! When executed, the reports are embedded in tabs within a new SSMS tab. As a consultant, I find these reports particularly useful when attempting to establish the health of a Microsoft Dynamics GP SQL Server installation. I can immediately relay critical SQL Server performance information to my clients and suggest preventative or corrective actions to mitigate the issues, saving them money in the process.&lt;br&gt;&lt;br&gt;So lets take a look at the available reports by node...&lt;br&gt;&lt;br&gt;&lt;table border=&quot;4&quot; cellpadding=&quot;4&quot; bgcolor=&quot;#fffff0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Node&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Report&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Server Dashboard&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Configuration Changes History&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Schema Changes History&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Scheduler Health&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Memory Consumption&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; All Blocking Transactions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; All Cursors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; Top Cursors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; All Sessions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; Top Sessions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; Dormant Sessions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Activity &#8211; Top Connections&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Top Transactions by Age&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Top Transactions by Blocked Transactions Count&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Top Transactions by Locks Count&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Performance &#8211; Batch Execution Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Performance &#8211; Object Execution Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Performance &#8211; Top Queries by Average CPU Time&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Performance &#8211; Top Queries by Average IO&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Performance &#8211; Top Queries by Total CPU Time&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Performance &#8211; Top Queries by Total IO&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Server Broker Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Server&lt;/td&gt;&lt;td&gt;Transaction Log Shipping Status&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Disk Usage&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Disk Usage by Top Tables&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Disk Usage by Table&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Disk Usage by Partition&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Backup and Restore Events&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;All Transactions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;All Blocking Transactions&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Top Transactions by Age&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Top Transactions by Blocked Transactions Count&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Top Transactions by Locks Count&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Resource Locking Statistics by Object&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Object Execution Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Database Consistency History&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Index Usage Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Index Physical Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Schema Changes History&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;User Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Database&lt;/td&gt;&lt;td&gt;Active Full-Text Catalogs&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logins&lt;/td&gt;&lt;td&gt;Login Statistics&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logins&lt;/td&gt;&lt;td&gt;Login Failures&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Logins&lt;/td&gt;&lt;td&gt;Resource Locking Statistics by Logins&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Management&lt;/td&gt;&lt;td&gt;Tasks&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Management&lt;/td&gt;&lt;td&gt;Number of Errors&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Notification&lt;/td&gt;&lt;td&gt;Services General&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SQL Server Agent&lt;/td&gt;&lt;td&gt;Job Steps Execution History&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;SQL Server Agent&lt;/td&gt;&lt;td&gt;Top Jobs&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br&gt;&lt;br&gt;To access a specific report, just right-click on the desired node then choose Reports &amp;gt; Standard Reports, select the desired report. The following is an example of the navigation to the Server node reports.&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://3.bp.blogspot.com/_gKzBBe6N-cc/SlTHToaeOpI/AAAAAAAAAx8/pTdj-QI9sR8/s1600-h/StandardReports01.png&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://3.bp.blogspot.com/_gKzBBe6N-cc/SlTHToaeOpI/AAAAAAAAAx8/pTdj-QI9sR8/s400/StandardReports01.png&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;Lets take a look at some sample standard reports...&lt;br&gt;&lt;br&gt;&lt;strong&gt;Server Dashboard report&lt;/strong&gt; (&lt;em&gt;server&lt;/em&gt; &amp;gt; Reports &amp;gt; Standard Reports &amp;gt; Server Dashboard)&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://4.bp.blogspot.com/_gKzBBe6N-cc/SlTJqRI4QlI/AAAAAAAAAyE/7gqrCGHTPKo/s1600-h/StandardReports02.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://4.bp.blogspot.com/_gKzBBe6N-cc/SlTJqRI4QlI/AAAAAAAAAyE/7gqrCGHTPKo/s400/StandardReports02.jpg&quot; /&gt;&lt;/a&gt;&lt;br&gt;This report provides detailed configuration information including, but not limited to the SQL Server startup time, product version and edition, server collation, the number of processors in used by the SQL Server instance, CPU usage by database, and number of active databases.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Disk Usage by Top Tables report&lt;/strong&gt; (&lt;em&gt;database&lt;/em&gt; &amp;gt; Reports &amp;gt; Standard Reports &amp;gt; Disk Usage by Top Tables)&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://1.bp.blogspot.com/_gKzBBe6N-cc/SlTJuocwygI/AAAAAAAAAyM/OnFlAK3Sa1k/s1600-h/StandardReports03.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://1.bp.blogspot.com/_gKzBBe6N-cc/SlTJuocwygI/AAAAAAAAAyM/OnFlAK3Sa1k/s400/StandardReports03.jpg&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;This reports shows vital table information such as the number of records in the table, the amount of disk space reserved for the table, spaced occupied by data and indexes, and the unused space. This information can be used to plan for disk space optimization and establish whether it will be necessary to increment the number of partitions or relocate the databases.&lt;br&gt;&lt;br&gt;&lt;strong&gt;Backup and Restore Events report&lt;/strong&gt;&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://2.bp.blogspot.com/_gKzBBe6N-cc/SlTJyEVbCzI/AAAAAAAAAyU/dQJkB5gYP00/s1600-h/StandardReports04.jpg&quot;&gt;&lt;img border=&quot;0&quot; alt=&quot;&quot; src=&quot;http://2.bp.blogspot.com/_gKzBBe6N-cc/SlTJyEVbCzI/AAAAAAAAAyU/dQJkB5gYP00/s400/StandardReports04.jpg&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;This one is got to be one of the most important database level reports as it shows statistics about the backups completed on a specific database: average time, size of backups, whether the database backup was complete or differential, etc.&lt;br&gt;&lt;br&gt;I hope you like this SQL Server gem and start to explore these reports. There is valuable information that can be used to administer your Dynamics GP and overall SQL Server environment.&lt;br&gt;&lt;br&gt;Until next post!&lt;br&gt;&lt;br&gt;MG.-&lt;br&gt;Mariano Gomez, MIS, MCP&lt;br&gt;Maximum Global Business, LLC&lt;br&gt;&lt;a href=&quot;http://www.maximumglobalbusiness.com/&quot;&gt;http://www.maximumglobalbusiness.com/&lt;/a&gt;&lt;br&gt;&lt;img src=&quot;http://www.myworldmaps.net/map.ashx/8afd9933-b98d-4111-82fe-280b9e0f4122/ping&quot; width=&quot;1&quot; height=&quot;1&quot; /&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5285970135510371565-7922623690201428534?l=dynamicsgpblogster.blogspot.com&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Jun 2010 18:12:49 GMT</pubDate></item><item><title>Weekly Dynamic: SQL Snapshots and Dynamics GP</title> <link> http://msdynamicsgp.blogspot.com/2009/05/weekly-dynamic-sql-snapshots-and.html</link><description>&lt;div&gt;Sometimes when implementing Dynamics GP you do a lot of backing up and restoring. Large implementations can require multiple test environments, development environments, etc. Sometimes you need to push a large number of transactions through for testing over and over again, restoring the environment each time.&lt;br&gt;&lt;br&gt;Well all of those backups and restores take time. A faster alternative is to use functionality in SQL Server to take a snapshot of a company. Snapshots have lots of limitations that make them unsuitable for typical backup/restore needs but for activities that require multiple reloads they are a lifesaver. Why? Snapshot restores are fast. Smoking fast. 4 second restores fast.&lt;br&gt;&lt;br&gt;In a test on an old, single processor machine, the default TWO company and the Dynamics DB took 45 seconds to backup and another 45 seconds  to restore. A snapshot took 6 seconds to backup and 4 seconds to restore. What's more, the snapshots don't slow down much as the db size increases. We've seen GP databases that take an hour for a full backup and restore still create a snapshot in under 10 seconds and restore in under 10 seconds.&lt;br&gt;&lt;br&gt;Unfortunately Snapshots only work on the Enterprise Edition of SQL Server but if you want to know more about both the power and the limitations of snapshots, &lt;a href=&quot;http://www.simple-talk.com/sql/database-administration/sql-server-2005-snapshots/&quot;&gt;here is a great overview.&lt;/a&gt;&lt;br&gt;&lt;br&gt;Here is the SQL Code I used to create and restore my test snapshots:&lt;br&gt;&lt;br&gt;&lt;span&gt;CREATE DATABASE DYNAMICS_dbss ON&lt;/span&gt;&lt;br&gt;&lt;span&gt;( NAME = 'GPSDYNAMICSDat.mdf', FILENAME = &lt;/span&gt;&lt;br&gt;&lt;span&gt;'c:\DYNAMICS_dbss.ss' )&lt;/span&gt;&lt;br&gt;&lt;span&gt;AS SNAPSHOT OF DYNAMICS;&lt;/span&gt;&lt;br&gt;&lt;span&gt;GO&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt;CREATE DATABASE TWO_dbss ON&lt;/span&gt;&lt;br&gt;&lt;span&gt;( NAME = 'GPSTWODat.mdf', FILENAME = &lt;/span&gt;&lt;br&gt;&lt;span&gt;'C:\TWO_dbss.ss' )&lt;/span&gt;&lt;br&gt;&lt;span&gt;AS SNAPSHOT OF TWO;&lt;/span&gt;&lt;br&gt;&lt;span&gt;GO&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt;-------------------------------------------------&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt;RESTORE DATABASE DYNAMICS FROM DATABASE_SNAPSHOT = 'DYNAMICS_dbss'&lt;/span&gt;&lt;br&gt;&lt;span&gt;go&lt;/span&gt;&lt;br&gt;&lt;span&gt;RESTORE DATABASE TWO FROM DATABASE_SNAPSHOT = 'TWO_dbss'&lt;/span&gt;&lt;br&gt;&lt;span&gt;go&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;[H.T. to Ross Carlson for this]&lt;br&gt;&lt;div&gt;&lt;img src=&quot;http://img.zemanta.com/pixy.gif?x-id=34779458-309c-855d-8a3b-fd7dc7f33d91&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;http://blogger.googleusercontent.com/tracker/16549187-1168981858855097883?l=msdynamicsgp.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds2.feedburner.com/~r/DynamicAccounting/~4/nUdZu_rwsCo&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description><pubDate>Thu, 17 Jun 2010 22:07:15 GMT</pubDate></item><item><title>gptip42day - Upgrading to SQL 2008</title> <link> http://gp2themax.blogspot.com/2009/11/gptip42day-upgrading-to-sql-2008.html</link><description>&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;span&gt;I try to stay away from the technical stuff in this blog and keep it oriented toward daily transaction processing and reporting but in my opinion this is worthy of mention, especially if you do a lot of SSRS reporting.&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;span&gt;One of my frustrations with&#160;SSRS in&#160;2005 and previous versions of SQL is adding a subtotal to a column of data.&#160; One would think it would be a simple matter of inserting a formula in the column, much like entering a formula in an Excel spreadsheet, but it&amp;#39;s not nearly that easy.&#160; You have to enter a significant amount of code to&#160;enter a subtotal in a&#160;report.&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;span&gt;However, SQL 2008 provides more flexibility in grouping, totals and subtotals using the &amp;#39;Tablix&amp;#39; data region, which&#160;replaces the previous Table, Matrix and List elements in prior versions of SSRS.&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;span&gt;Going into the details is beyond the scope of this blog but I encourage you to have a look at the Tablix feature in 2008 if you use SSRS.&#160; It makes entering subtotals a piece of cake.&lt;/span&gt;&lt;br&gt;&lt;/div&gt;&lt;div align=&quot;justify&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/1326377569808004304-2984976195391856716?l=gp2themax.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Jun 2010 05:08:49 GMT</pubDate></item><item><title>How to transfer data between two Microsoft Dynamics GP companies using Microsoft SQL Server Import and Export Wizard</title> <link> http://dynamicsgpblogster.blogspot.com/2009/06/how-to-transfer-data-between-two.html</link><pubDate>Thu, 17 Jun 2010 18:12:50 GMT</pubDate></item><item><title>The Ins and Outs of Dynamics GP on SQL Server</title> <link> http://msdynamicsgp.blogspot.com/2009/05/ins-and-outs-of-dynamics-gp-on-sql.html</link><description>&lt;div&gt;David Musgrave has a great new post up on &lt;a href=&quot;http://blogs.msdn.com/developingfordynamicsgp/archive/2009/05/22/understanding-how-microsoft-dynamics-gp-works-with-microsoft-sql-server.aspx&quot;&gt;Dynamics GP and SQL Server&lt;/a&gt;. In it he explains how GP works with SQL Server and why some of the concepts (like dex_row_id) exist.&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/16549187-2638085879028156531?l=msdynamicsgp.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds2.feedburner.com/~r/DynamicAccounting/~4/lWwbi-rEBn8&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description><pubDate>Thu, 17 Jun 2010 22:07:15 GMT</pubDate></item><item><title>Weekly Dynamic: SQL Data Mining Add In</title> <link> http://msdynamicsgp.blogspot.com/2009/05/weekly-dynamic-sql-data-mining-add-in.html</link><description>&lt;div&gt;Despite the Performance Point setbacks, Microsoft BI marches forward. The latest cool tool is also free. Microsoft has released its &lt;a href=&quot;http://blogs.msdn.com/bi/archive/2009/05/07/microsoft-bi-what-can-you-do-today.aspx&quot;&gt;Data Mining Add In for SQL Server&lt;/a&gt;. While not necessarily GP specific it should work just fine against GP databases and cubes. I could spend a whole bunch of bits here telling you about it but why don't you j&lt;a href=&quot;http://blogs.msdn.com/bi/archive/2009/05/07/microsoft-bi-what-can-you-do-today.aspx&quot;&gt;ust go here and see for your self how cool this is.&lt;/a&gt;&lt;br&gt;&lt;br&gt;One caveat, this requires Office 2007 and SQL Server 2008 so some of you may not be ready for it yet.&lt;br&gt;&lt;br&gt;&lt;div&gt;&lt;img src=&quot;http://img.zemanta.com/pixy.gif?x-id=571ad0ab-2430-8183-8c6f-f90bb5310ae0&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;http://blogger.googleusercontent.com/tracker/16549187-4687578190572981532?l=msdynamicsgp.blogspot.com&quot; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds2.feedburner.com/~r/DynamicAccounting/~4/qyl6EtIyJ6U&quot; height=&quot;1&quot; width=&quot;1&quot; /&gt;</description><pubDate>Thu, 17 Jun 2010 22:07:15 GMT</pubDate></item><item><title>Using SQL CLR stored procedures to integrate Microsoft Dynamics GP and Microsoft CRM</title> <link> http://dynamicsgpblogster.blogspot.com/2010/08/using-sql-clr-stored-procedures-to.html</link><description>I have been involved for over the past 6 months with an extensive project requiring complex integrations between Microsoft Dynamics GP 10.0, Microsoft CRM 4.0 and other custom operational systems. In the process of designing and implementing these integrations the client requested a very easy to use interface that could be maintained without having to hire an army of developers or even specialized resources.&lt;br /&gt;&lt;br /&gt;The mission: insert/update customer addresses and inventory items from Microsoft Dynamics GP into Microsoft CRM's Product and Customer Address entities. The client also requested the integration be done using the Microsoft CRM web services in order to ensure upgrade support.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Beginning with SQL Server 2005, the components required to develop basic CLR database objects are installed with SQL Server. CLR integration functionality is exposed in an assembly called &lt;strong&gt;&lt;em&gt;system.data.dll&lt;/em&gt;&lt;/strong&gt;, which is part of the .NET Framework. This assembly can be found in the Global Assembly Cache (GAC) as well as in the .NET Framework directory. A reference to this assembly is typically added automatically by both command line tools and Microsoft Visual Studio, so there is no need to add it manually.&lt;br /&gt;&lt;br /&gt;The &lt;strong&gt;&lt;em&gt;system.data.dll&lt;/em&gt;&lt;/strong&gt; assembly contains the following namespaces, which are required for compiling CLR database objects:&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.data.aspx&quot;&gt;System.Data&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.data.sqltypes.aspx&quot;&gt;System.Data.Sql&lt;br /&gt;Microsoft.SqlServer.Server&lt;br /&gt;System.Data.SqlTypes&lt;/a&gt;&lt;/em&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.data.sqltypes.aspx&quot;&gt; &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can find more information on SQL Server CLR integration over at MSDN. Be sure to check the following articles:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms131045.aspx&quot;&gt;Overview of CLR Integration&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ms131094.aspx&quot;&gt;CLR Stored Procedures&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The solution can be broken down into two parts:&lt;br /&gt;&lt;br /&gt;1. Creating the assembly with the CLR stored procedures that would in turn instantiate the CRM web methods to open a connection and insert or update the Product and Customer Address entity records.&lt;br /&gt;&lt;br /&gt;2. Configuring Microsoft SQL Server and registering the assembly, creating the triggers on the RM Customer Address Master (RM00102) and Item Master (IV00101) tables that would invoke the CLR stored procedures to pass the Microsoft Dynamics GP records.&lt;br /&gt;&lt;br /&gt;This week's series will outline the solution with the code to achieve this. The following topics will become available on the day of their release:&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://dynamicsgpblogster.blogspot.com/2010/08/using-sql-clr-stored-procedures-to_16.html&quot;&gt;08/18/2010 - Creating a CLR assembly and working with CRM web methods &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://dynamicsgpblogster.blogspot.com/2010/08/using-sql-server-clr-stored-procedures.html&quot;&gt;08/20/2010 - Configuring SQL Server and creating table triggers&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Until next post!&lt;br /&gt;&lt;br /&gt;MG.-&lt;br /&gt;Mariano Gomez, MVP&lt;br /&gt;Maximum Global Business, LLC&lt;br /&gt;&lt;a href=&quot;http://www.maximumglobalbusiness.com/&quot;&gt;http://www.maximumglobalbusiness.com/&lt;/a&gt;&lt;br /&gt;&lt;img src=&quot;http://www.myworldmaps.net/map.ashx/8afd9933-b98d-4111-82fe-280b9e0f4122/ping&quot; width=&quot;1&quot; height=&quot;1&quot; mce_src=&quot;http://www.myworldmaps.net/map.ashx/8afd9933-b98d-4111-82fe-280b9e0f4122/ping&quot; /&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/5285970135510371565-2128876678474508900?l=dynamicsgpblogster.blogspot.com&quot; alt=&quot;&quot; /&gt;&lt;/div&gt;</description><pubDate>Mon, 16 Aug 2010 03:00:20 GMT</pubDate></item><item><title>It Pays to Know a SQL Expert, Especially if you are not!</title> <link> http://www.rosebizinc.com/gpblog/2009/07/it-pays-to-know-sql-expert-especially.html</link><description>&lt;span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.rosebizinc.com/gpblog/uploaded_images/headache-703065.gif&quot;&gt;&lt;img alt=&quot;&quot; src=&quot;http://www.rosebizinc.com/gpblog/uploaded_images/headache-703059.gif&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br&gt;&lt;div&gt;As consultants, we all have aspects of our work that are more frustrating than others. Migration of data is one of those tasks that I prefer to do alone...I tend to swear a lot and it isn't pretty! Last week I had a payroll migration that was one of the most hairy to date and I have been doing this for years.&lt;br&gt;&lt;br&gt;It started out very vanilla. After all, it doesn't matter the quantity of data...it is all about the &lt;em&gt;quality&lt;/em&gt;, right? I only needed current year employee payroll transactions. My methodology is very tried and true. I Download the data into Excel, clean it up, save it, map it to Integration Manager and after a few hit and miss tries...the data has been successfully integrated. I can move on to something more exciting.&lt;br&gt;&lt;br&gt;My client runs about 2,500 payroll checks a week and there is a massive amount of employee turnover. In the legacy system (which is housed in a separate facility from the new implementation) employees were not inactivated and, after several years, there were literally hundreds of thousands of employee master records.&lt;br&gt;&lt;br&gt;As in Dynamics GP, the data that I needed was in several different tables, and had to be exported. No problem I think, and dump out the historical payroll transactions via SQL table export. I will do the same thing with the entire employee master record table, Do a VLook-up to parse out the employees that haven't been paid this year...and there you go... I have what I need to import into my new GP database.&lt;br&gt;&lt;br&gt;Who knew there was a limit to &lt;em&gt;how much&lt;/em&gt; data Excel could handle. Yes, I know, there is a max. amount of rows - and Excel 2007 can hold a lot! Apparently, not enough for my employee master and state tax file. After several attempts (and a lot of swearing) I have the data in separate workbooks. Now to get rid of the employees I do not need. Not so easy. The calculation speed was painfully slow and while I could import data to all 1M rows, Excel couldn't run the formula due to memory constraints (so I am told.) 12 hours later I am completely frustrated and at my witts end.&lt;br&gt;&lt;br&gt;This is where the story gets good. My fairy godmother (a.k.a. my boss) tells me to quit pulling my hair out and call Tom Celvi. He is a SQL wizard! I am a bean-counter and application consultant. I have always thought of SQL as something to be respected and a bit feared. After all, it is &lt;strong&gt;&lt;em&gt;the&lt;/em&gt;&lt;/strong&gt; &quot;house&quot; for my GP data.&lt;br&gt;&lt;br&gt;Silly me! There is a whole other world out there that I owe myself to learn more about. Tom has shown me that SQL is a very powerful tool and can be used for other things besides housing my precious GP databases.&lt;br&gt;&lt;br&gt;Tom created a database within the clients SQL 2008 environment, imported all my raw, ugly data and through a series events that I can only explain as pure alchemy...he managed to move that cleaned up data into my GP database and I had my data in all the correct payroll tables along with only the 12,000 current employees!&lt;br&gt;&lt;br&gt;This took Tom 10 hours in total and I bet he didn't swear once! I was then able to successfully integrate the current year payroll transactions via Integration Manager and my my client is live and processing payroll.&lt;br&gt;&lt;br&gt;Under lessons learned:&lt;br&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;SQL doesn't have to be feared, it can be your friend (but should be respected)&lt;/li&gt;&lt;br&gt;&lt;li&gt;Quality over Quantity is over rated - strive for both because Excel does have its limits.&lt;/li&gt;&lt;br&gt;&lt;li&gt;hang out with a SQL guru, it will save on hair dye&lt;/li&gt;&lt;/ol&gt;&lt;br&gt;&lt;p&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;img width=&quot;1&quot; height=&quot;1&quot; src=&quot;https://blogger.googleusercontent.com/tracker/2107078631551925435-6090795227241750401?l=www.rosebizinc.com/gpblog&quot; /&gt;&lt;/div&gt;</description><pubDate>Thu, 17 Jun 2010 02:08:27 GMT</pubDate></item></channel></rss>