默认情况下,Visual Studio 2015 数据库项目会删除不在项目中的存储过程吗?
Will a Visual Studio 2015 database project by default drop stored procedures not in project?
假设有人 - 出于某种原因 - 在数据库中手动创建了一个 SP(并且 没有 将其添加到数据库项目中)。如果我们现在运行数据库项目的发布精灵,手动添加的SP是不是会掉线?
简答:不,它不会被丢弃。
如果您从 数据库项目 发布(如右击并发布),则默认情况下它是关闭的:An Overview of Database Project Settings(我知道这是来自2010,但默认值没有改变)
项目设置名为:"DROP Objects in target but not in project",可在 "Debug" 选项卡中找到。当您右键单击“发布”时,您应该会看到标准的发布配置文件对话框,该对话框为您提供 "Advanced" 按钮以及下面描述的选项。
在发布配置文件中,它被称为"Drop objects in target but not in source."它默认是不勾选的,可以从"Advanced Publish Settings"的"Drop"选项卡中更改。
在这里您可以获得不删除特定对象类型的附加选项。
我建议检查这个值,而不是依赖默认值(可以通过创建新的发布配置文件来验证)。
一如既往,在处理生产数据库时,我建议在允许脚本 运行 之前检查脚本。这些机器,伙计,你不能相信它们。
假设有人 - 出于某种原因 - 在数据库中手动创建了一个 SP(并且 没有 将其添加到数据库项目中)。如果我们现在运行数据库项目的发布精灵,手动添加的SP是不是会掉线?
简答:不,它不会被丢弃。
如果您从 数据库项目 发布(如右击并发布),则默认情况下它是关闭的:An Overview of Database Project Settings(我知道这是来自2010,但默认值没有改变)
项目设置名为:"DROP Objects in target but not in project",可在 "Debug" 选项卡中找到。当您右键单击“发布”时,您应该会看到标准的发布配置文件对话框,该对话框为您提供 "Advanced" 按钮以及下面描述的选项。
在发布配置文件中,它被称为"Drop objects in target but not in source."它默认是不勾选的,可以从"Advanced Publish Settings"的"Drop"选项卡中更改。
在这里您可以获得不删除特定对象类型的附加选项。
我建议检查这个值,而不是依赖默认值(可以通过创建新的发布配置文件来验证)。
一如既往,在处理生产数据库时,我建议在允许脚本 运行 之前检查脚本。这些机器,伙计,你不能相信它们。