{"id":11622,"date":"2022-01-27T15:44:11","date_gmt":"2022-01-27T23:44:11","guid":{"rendered":"https:\/\/threecloud.wpengine.com\/?p=11622"},"modified":"2023-09-19T16:01:19","modified_gmt":"2023-09-19T23:01:19","slug":"why-database-developers-should-prefer-ssdt-over-ssms","status":"publish","type":"post","link":"https:\/\/3cloudsolutions.com\/resources\/why-database-developers-should-prefer-ssdt-over-ssms\/","title":{"rendered":"Three Reasons Database Developers Should Prefer SSDT Over SSMS"},"content":{"rendered":"<p><img decoding=\"async\" style=\"width: 800px;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/5670923\/Images\/Blog%20\/BI%20and%20Reporting%20\/bi_threereasons.png\" alt=\"bi_threereasons\" width=\"800\" \/><\/p>\n<p>If you\u2019re anything like me, managing and developing a SQL Server database has always been synonymous with working inside SQL Server Management Studio. It provides most of the essential elements of an integrated development environment\u2013 syntax highlighting, debugging tools, object browser \u2013 and it comes free with every installation of SQL Server, so it\u2019s a no-brainer for most BI professionals. Recently, though, I\u2019m becoming a huge proponent of SQL Server Data Tools, Microsoft\u2019s set of BI plugins that run inside Visual Studio. Its features have evolved over the years and today I\u2019ve found it\u2019s possible, except for a very limited number of tasks, to completely switch my workflow over to SSDT full-time. Here are three reasons you should too.<\/p>\n<p><strong style=\"background-color: transparent; font-size: 1.8rem; text-transform: uppercase;\">Reason #1: Integrated Source Control<\/strong><\/p>\n<p>Any team development activity requires source control, and databases are no exception. Unfortunately,<a href=\"https:\/\/www.red-gate.com\/blog\/database-devops\/database-version-control-3\" rel=\" noopener\"> only about 58%<\/a> of database developers use any source control system at all, according to a Red Gate DevOps survey. This is unfortunate, since database objects are just as vulnerable to development conflicts as any other type of source code, and often require point-in-time recovery. Fortunately, Visual Studio is designed to run with Team Foundation Server (TFS), one of the best centralized source control platforms around. Of course, there are multiple third-party source control plugins available for SSMS, but none have tight integration the way that Visual Studio and TFS do. A typical workflow involving a central TFS server and three developers is illustrated below.<\/p>\n<p><img decoding=\"async\" style=\"width: 500px;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/5670923\/THREE%20REASONS%20DATABASE%20DEVELOPERS%20SHOULD%20PREFER%20SSDT%20OVER%20SSMS_image1.png\" alt=\"THREE REASONS DATABASE DEVELOPERS SHOULD PREFER SSDT OVER SSMS_image1\" width=\"500\" \/><\/p>\n<h3><strong>Reason #2: Offline Development<\/strong><\/h3>\n<p>How many times have you run into this scenario: developer A is actively working in a shared dev database. He or she changes the name of a column. Developer B is writing a stored procedure that refers to the old column name. Suddenly, the stored proc breaks, and they have no idea why. It worked just fine a minute ago! Developer B then spends the next 10 minutes hunting down the issue, only to discover it was a result of A\u2019s work. Wouldn\u2019t it be nice if there was a way for both A and B to make changes to dev without the risk of overwriting each other\u2019s work? Visual Studio is designed exactly for this. You\u2019ll notice that when you install SSDT, you\u2019re given the option of installing SQL Server Express on your local machine. Usually this will be given the name ProjectsV13 (or something similar, depending on your version of VS). This local instance is meant to be used as your own personal debugging database, and you can deploy objects to it and query it without breaking the central development database. Any conflicts can be resolved at the project level in Visual Studio before the final deployment to dev.<\/p>\n<p><img decoding=\"async\" style=\"width: 500px;\" src=\"https:\/\/cdn2.hubspot.net\/hubfs\/5670923\/THREE%20REASONS%20DATABASE%20DEVELOPERS%20SHOULD%20PREFER%20SSDT%20OVER%20SSMS_image2.png\" alt=\"THREE REASONS DATABASE DEVELOPERS SHOULD PREFER SSDT OVER SSMS_image2\" width=\"500\" \/><\/p>\n<h3><strong>Reason #3: DAC Deployment<\/strong><\/h3>\n<p>A DAC is a data-tier application, which is basically a file containing the shell of a database, without the data. It gives databases portability, upgradeability, and are a godsend to database administrators (DBAs) everywhere. Prior to this construct, developers would often need to keep track of all the changes they made to a database since the last deployment and manually script out the ALTER statements to give to the DBA as part of a change management process. Now, instead of manually scripting the changes, the developers can build their project in Visual Studio, generate a .dacpac file (which happens automatically during a build), and hand that DACPAC file over to the DBA. The DBA can then generate a change script automatically by having Visual Studio compare the contents of the DACPAC to the existing database. This is done by right-clicking the database project and choosing <strong>Deploy<\/strong> in Visual Studio.<\/p>\n<p>If you\u2019re involved in any kind of Microsoft-based BI development project, SQL Server Data Tools should be in your toolkit. It\u2019s introduced tons of powerful features that enable developers focus more on the development of their code, and less on the management of their code. Going from SSMS to Visual Studio requires a bit of a learning curve and a habit change, but I\u2019m confident that almost all developers can increase their long-term productivity by making the switch.<\/p>\n<p>To learn more about <a href=\"https:\/\/3cloudsolutions.com\/get-started\/\">creating elevating your current Data Warehouse or BI solutions<\/a> reach out to 3Cloud today.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you\u2019re anything like me, managing and developing a SQL Server database has always been&mldr;<\/p>\n","protected":false},"author":81,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[260],"tags":[429],"class_list":["post-11622","post","type-post","status-publish","format-standard","hentry","category-data-ai","tag-data-and-ai","topics-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/11622","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/comments?post=11622"}],"version-history":[{"count":0,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/11622\/revisions"}],"wp:attachment":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media?parent=11622"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/categories?post=11622"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/tags?post=11622"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}