How do you do File | New | SQL Server Database?
It used to be a no brainer. I'd fire up SQL Server Management Studio (SSMS) and go to town.
Or if SSMS wasn't installed, I would open up the Database Tools in Visual Studio.
However, in 2006 I saw the light from the Dude (no not that dude), the Data Dude Gert Drapers.
I was lucky in that I got to work with Gert, Matt Nunn, and Cameron Skinner to build the first hands-on labs for the "Data Dude" product (that eventually became Microsoft® Visual Studio Team System 2008 Database Edition) that we first ran at Tech Ed 2006 in Boston. Today Gert's moved on and "Data Dude" is known as SSDT or the SQL Server Data Tools.
However, as I get ready for VSLive 2017 in Redmond, I'm working on my DLM talk and thinking what does it mean to create a new SQL Server database in 2017.
First, what version of SQL Server was I going to work with?
Naturally there's the issue of what "edition" (Developer or Express) but now it's more nuanced—local install or database as a service in Azure; and then Windows or ... Linux!
This means considering SQL Server 2016 and the upcoming SQL Server 2017 which recently released the first release candidate.
August 2, 2017 Update: Microsoft dropped an updated version of the SQL Server 2017 on Linux.
Second, what tools?
Naturally, there's the obvious tools from Microsoft:
-
SQL Server Management Studio
-
Visual Studio 2017 with SSDT
-
Redgate Tools (three of which are included with Visual Studio 2017 Enterprise, the version I have)
However, there's some new tools on the block that I might want to consider when working cross platform, and when of thinking DLM and DevOps:
-
SQL Server PowerShell from Microsoft
-
dbatools: "PowerShell module to help SQL Server Pros be more productive"
-
SQL-Xplat-CLI: "New SQL cross-platform command line tools"
And third, what about the app?
Now on one hand, why does it matter? And in general it doesn't. For me, I know how to normalize a database. I use database objects like Views and Stored Procedures. But alot folks don't and are enamored with ORMs like Entity Framework. That got me thinking, do I care about EF? Well if you use .NET Core ... yep more to consider.
So at this point it's become clear: grab my Windows PC and my MacBook Pro, my Azure sub, and a bunch of PowerShell scripts and get busy--I need to explore the old and the new.