如果不存在,如何使用 Visual Studio 中的数据库项目创建数据库?

How to create database using Database Project in Visual Studio if doesn't exists?

我的个人项目有一个数据库项目,我正在尝试将我的代码部署到我的 DEV 服务器。我经常删除并重新创建我的 DEV 服务器。现在,DEV Server 是用 SQL Server 新建的。每次我想部署我的代码时,我都必须手动创建数据库项目,然后发布数据库项目。我想通过数据库项目部署自动创建数据库。

现在,我有一个创建数据库的脚本,但我必须手动执行它。这工作得很好,但我也想自动执行此步骤。

这可能吗?如果是,那么如何?请一步步解释。另外,对于连接字符串中的初始目录,我们会提到什么?

编辑: 我尝试使用

创建数据库
CREATE DATABASE LocalDbTest

在预部署脚本中。但它没有用。它正在创建数据库,但是 table 没有在其下创建 table。由于我使用 master 数据库作为默认数据库,它正在 master 下创建 table。它不允许我将 select LocalDbTest 数据库作为默认数据库,因为它尚未创建,所以我必须将 select Master 作为我的默认数据库。我尝试通过以下方式更改数据库:

USE LocalDbTest
GO

我在创建数据库后就使用了它,但这没有用,因为在生成脚本时它正在变回默认数据库。此部分在生成脚本时自动出现。

USE [$(DatabaseName)];
GO

另外 Visual Studio 不允许我在 table 名称前添加数据库名称,例如:

CREATE TABLE [LocalDbTest].[dbo].[TestTable]

我遇到错误:

When you create an object of this type in a database project, the object's name must contain no more than two parts.

如果您有用于创建数据库的脚本,您可以使用预构建事件调用 SQLCMD 和 运行 您的脚本。

编辑: 如果您无法指向不存在的数据库,您可能必须手动编辑发布配置文件(例如 dev.publish.xml)并明确设置 TargetDatabaseName 元素。如果您希望每次发布时都重新创建,您还可以将 CreateNewDatabase 元素设置为 True

回答: 您可以使用发布配置文件并在其中硬编码目标数据库。