如果不存在,如何使用 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
。
回答:
您可以使用发布配置文件并在其中硬编码目标数据库。
我的个人项目有一个数据库项目,我正在尝试将我的代码部署到我的 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
。
回答: 您可以使用发布配置文件并在其中硬编码目标数据库。