Table of Contents

Feature Comparison

Other approaches

Microsoft provides two other project types, that have features similar to this SDK.

  • "Classic" SSDT projects in Visual Studio - only builds and works on Windows, and supports multiple designers.
  • Microsoft.Build.Sql based projects - SDK-style projects, that work on all platforms, and are supported by tooling in Visual Studio Code (VS Code) and SQL Server Management Studio (SSMS) - no Visual Studio support at the moment.

Microsoft has published this comparison table, and based on that, we have added this SDK used in combination with the SQL Database Projects Power Tools extension for Visual Studio.

Feature set comparison

Feature VS Code (Microsoft.Build.Sql) SSMS (Microsoft.Build.Sql) VS (Classic .sqlproj) VS (This SDK with Power Tools)
Create new empty project Yes Yes Yes Yes
Create new project from existing database Yes Yes Yes Yes
Solution management and operations No Yes Yes Yes
Project run build Yes Yes Yes Yes
Cross platform build Yes Yes No Yes
Publish project to existing server Yes Yes Yes Yes
Publish project to a local development instance Yes1 Yes2 Yes3 Yes3
Publish options/properties Yes Yes Yes Yes (in .csproj)
Target platform can be updated Yes Yes Yes Yes
SQLCMD variables Yes Yes Yes Yes
Project references Yes Yes Yes Yes
DACPAC references Yes Yes Yes No
Package references Yes Yes No Yes
Analyzer package references Yes Yes No Yes
Publish profile creation Yes Yes Yes No
SQL files can be added by placing in project folder Yes Yes No Yes
SQL files can be excluded from build Yes Yes Yes Yes
Pre-deployment and post-deployment scripts Yes Yes Yes Yes
New object templates Yes Yes Yes Yes4
Project files can be organized into folders Yes Yes Yes Yes
Schema comparison project to database Yes Yes Yes Yes
Schema comparison database to project Yes Yes Yes Yes
Graphical table designer No No Yes No
Code analysis - enable/disable rules GUI Yes Yes Yes Yes
Code analysis - extensive GUI with doc links and more No No No Yes
Project properties - build output settings No No Yes No
Project properties - database settings GUI No No Yes No
Project run code analysis Yes Yes Yes Yes
Object renaming and refactoring Yes No Yes No
Intellisense provided in database files from project model Yes No Yes No
Generate Create script during build No No No Yes
Generate E-R diagrams during build No No No Yes
  1. Local development instance is a SQL Server container.
  2. Any pre-installed Microsoft SQL database can be used as a local development instance.
  3. Local development instance is a SQL Server LocalDB instance.
  4. Limited subset of templates available

IDE support

The table below shows which IDEs support each of the three project types.

IDE Classic .sqlproj Microsoft.Build.Sql .sqlproj MSBuild.Sdk.SqlProj
Visual Studio Yes No Yes (with SQL Database Projects Power Tools extension)
VS Code No Yes (with SQL Database Projects extension) Partial5
SSMS No Yes No
Rider No Yes Partial5
  1. Can open and build MSBuild.Sdk.SqlProj projects as standard .NET SDK projects, but there is no dedicated SQL tooling or IntelliSense for the .sql files.