The Rest of the Story: Co-existing VS2010 and SSDT database projects

After my last adventure, I thought it would be interesting to try the "upgrade path" with SSDT and older "Database Projects" (i.e. Visual Studio for Database Professionals, or whatever the last name was before we went to the nice SSDT acronym, I always called them "Data Dude" projects after Gert Drapers, the original Data Dude).

Note first-off that when you have both VS2010 and SSDT projects installed into Visual Studio, there are two main menus, one called "SQL" and the other called "Data". In case you can't guess, "Data" is the one that goes with the "older" projects (it contains an entry for "Data Compare", a feature that SSDT doesn't have yet). And "SQL" is the SSDT project menu. There's a few "dualing toolbars" too; luckily for me, I'm not a big toolbar user in VS.

At least in VS2010 the Database Projects were always version-specific in name so I know that I can't target SQL Server 2012 in a "SQL Server 2005 or 2008 database project". Easy. Opening one of these projects brings up a "Convert to SSDT" dialog. This works as advertised, just
realize that there are some "artifacts" that are not converted because the corresponding
feature doesn't exist in SSDT yet (e.g. Data Generation Plans). Backing up the old project is
a good idea in any case. See this page for a list.

Finally, there are Data Tier Application projects. These support SQL Azure and the subset of
database objects that SQL Azure supports. You can create a DAC Project in Visual Studio after
the SSDT tools are installed. Interestingly (but expected), you can't import database objects
from a SQL Server 2012 database, even if the database only contains the subset of objects
that DAC supported in DAC V2.0, you're presented with an "Unable to connect to database"
message. Surprisingly, if you set your SQL Server 2012 database to Version 90 or 100
compatibility mode (thats SQL2005 or SQL2008 compatibility), creating a DAC project and importing the
database now works! (if it contains the right subset of objects). And of course the project
type would work (at least at this point in time) with a SQL Azure database or importing a
V2.0 (but not V3.0) DACPAC.
Bringing up an existing VS DAC project brings the (at this point) familiar "Convert" dialog.
Bear in mind that DAC projects could have some of the same unsupported artifacts as Database

Got it? So now you can co-exist with both/all sets of SQL database projects, database-version
willing. There are some nice new features in SSDT that make it compelling to convert, and the
"catch up" features may be added soon, because SSDT will be updated "on a SQL Azure cadance".
That's once every 3-6 months. And, come Visual Studio 11 (available in CTP/beta now), there
will ONLY be SSDT projects. So…Enjoy!


Other articles

Imagine feeling confident enough to handle whatever your database throws at you.

With training and consulting from SQLskills, you’ll be able to solve big problems, elevate your team’s capacity, and take control of your data career.