{"id":6806,"date":"2026-03-23T17:39:44","date_gmt":"2026-03-24T00:39:44","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/azure-sql\/?p=6806"},"modified":"2026-03-23T17:39:44","modified_gmt":"2026-03-24T00:39:44","slug":"sql-database-projects-publish-dialog-item-templates","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/azure-sql\/sql-database-projects-publish-dialog-item-templates\/","title":{"rendered":"Manage SQL database schemas in VS Code: Publish dialog and item templates"},"content":{"rendered":"<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Making schema changes often means jumping between tools. You write code in VS Code, then switch to a separate tool to deploy your changes : exporting a script, running it manually, or copy-pasting into a query editor. Either way, it pulls you out of your flow.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">With the latest updates to SQL Database Projects in VS Code, that context switching is no longer necessary. You can now manage and deploy schema changes to Azure SQL, SQL Server, or Fabric SQL databases without leaving your editor.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>What&#8217;s new: Publish dialog and item templates<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">We&#8217;ve added two features to the SQL Database Projects extension for VS Code that make database development faster and less error-prone.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>1. Publish dialog: See what you are deploying before you deploy it<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">When you right-click your SQL database project and select Publish, you get a dialog that lets you:<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Browse and select your target database<\/strong> \u2014 no more copying connection strings or searching for server names<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Preview the deployment script<\/strong> \u2014 see exactly what SQL will run before you commit<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Configure deployment options<\/strong> \u2014 control behavior like whether to drop objects that don&#8217;t exist in your project<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">This is especially valuable when deploying to production or making changes that could affect existing data. You can review the exact T-SQL that will be executed, verify it&#8217;s doing what you expect, and deploy with confidence.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>2. Item templates: Get started faster<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Item templates generate pre-configured code for tables, stored procedures, views, and other database objects with structure that matches your team&#8217;s standards. No more copy-pasting from old projects or remembering syntax.<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\">Select your project<\/li>\n<li class=\"whitespace-normal break-words pl-2\">Select Add Item<\/li>\n<li class=\"whitespace-normal break-words pl-2\">Choose your template (table, view, stored procedure, function)<\/li>\n<li class=\"whitespace-normal break-words pl-2\">Get a properly formatted file ready to customize<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Copilot code completions and Copilot agent in VS Code are also ready to assist you in completing the database objects. Hint: Tell Copilot agent &#8220;I&#8217;m creating a Microsoft.Build.Sql project and need &lt;complex set of objects&gt;.&#8221; If your team has naming conventions, security patterns, or audit columns that should be on every table, templates provide a consistent starting point.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Why this matters: Your database workflow should feel like app development<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">If you are building an application, your workflow probably looks like this: write code in VS Code, commit to Git, deploy via CI\/CD pipeline. You don&#8217;t switch between tools for every step. You stay in your editor, and the deployment happens from there.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Database development has traditionally been different. You write schema changes in one tool, deploy them in another, and manage source control somewhere else entirely. That fragmentation slows you down and creates opportunities for mistakes.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">With SQL Database Projects in VS Code, your database workflow can match your application workflow:<\/p>\n<ol class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-decimal flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Write schema changes<\/strong> in SQL files in your project<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Version control them<\/strong> in Git<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Review them<\/strong> in pull requests with your team<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Deploy them<\/strong> directly from VS Code using the publish dialog<\/li>\n<\/ol>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">All without leaving your editor. All with the same version control and review processes you use for application code.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Real-world scenarios<\/strong><\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\"><strong>Test locally first:<\/strong> Deploy to a local SQL Server 2025 container before pushing to production using the &#8216;allow incompatible platform&#8217; option<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Enforce team standards:<\/strong> Use item templates to ensure consistent structure (like required audit columns) across all new database objects<\/li>\n<li class=\"whitespace-normal break-words pl-2\"><strong>Review before production:<\/strong> Preview the exact T-SQL that will be executed, and confirm it before you deploy<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>Get started<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">Both the publish dialog and item templates are available now in the latest SQL Database Projects extension for VS Code.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">For detailed guidance, refer to the <a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/tools\/visual-studio-code-extensions\/sql-database-projects\/publish-database-project?view=sql-server-ver17\">Publish dialog documentation<\/a> and<a href=\"https:\/\/learn.microsoft.com\/en-us\/sql\/tools\/visual-studio-code-extensions\/sql-database-projects\/add-item-templates?view=sql-server-ver17\"> Item templates documentation<\/a>.<\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\"><strong>What&#8217;s coming next<\/strong><\/p>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The publish dialog and item templates are just the beginning. Over the coming months, we&#8217;re investing in making VS Code the best place to build and manage SQL databases:<\/p>\n<ul class=\"[li_&amp;]:mb-0 [li_&amp;]:mt-1 [li_&amp;]:gap-1 [&amp;:not(:last-child)_ul]:pb-1 [&amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\">\n<li class=\"whitespace-normal break-words pl-2\">Code analysis and quality checks<\/li>\n<li class=\"whitespace-normal break-words pl-2\">Advanced <strong>IntelliSense and productivity features<\/strong><\/li>\n<li class=\"whitespace-normal break-words pl-2\">Deeper integration with AI-assisted development<\/li>\n<\/ul>\n<p class=\"font-claude-response-body break-words whitespace-normal leading-[1.7]\">The roadmaps for the MSSQL extension in VS Code and SQL projects are available on GitHub: <a href=\"https:\/\/github.com\/microsoft\/vscode-mssql\/wiki\/roadmap\">vscode-mssql roadmap<\/a>\u00a0and <a href=\"https:\/\/github.com\/microsoft\/DacFx\/wiki\">DacFx roadmap.<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Making schema changes often means jumping between tools. You write code in VS Code, then switch to a separate tool to deploy your changes : exporting a script, running it manually, or copy-pasting into a query editor. Either way, it pulls you out of your flow. With the latest updates to SQL Database Projects in [&hellip;]<\/p>\n","protected":false},"author":202171,"featured_media":6807,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1,672,625],"tags":[723,722,704,724,558],"class_list":["post-6806","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-sql","category-sql-server-2025","category-vs-code","tag-item-templates","tag-publish-dialog","tag-sql-database-projects","tag-ssdt","tag-vs-code"],"acf":[],"blog_post_summary":"<p>Making schema changes often means jumping between tools. You write code in VS Code, then switch to a separate tool to deploy your changes : exporting a script, running it manually, or copy-pasting into a query editor. Either way, it pulls you out of your flow. With the latest updates to SQL Database Projects in [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/6806","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/users\/202171"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/comments?post=6806"}],"version-history":[{"count":1,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/6806\/revisions"}],"predecessor-version":[{"id":6809,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/posts\/6806\/revisions\/6809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media\/6807"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/media?parent=6806"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/categories?post=6806"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/azure-sql\/wp-json\/wp\/v2\/tags?post=6806"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}