Visual Studio 数据库部署删除触发器

问题描述 投票:0回答:1

我们在 Visual Studio 中有一个数据库项目,并且我们在表上定义了 SQL 触发器。 现在,我们不再需要它,但我无法在 Visual Studio 数据库发布中删除它。 我收到“此部署在执行期间可能会遇到错误,因为对 [dbo].[TableName] 的更改被目标数据库中的 [dbo].[TriggerName] 依赖项阻止。”

扳机直接向前:

CREATE TRIGGER [dbo].[TriggerName]
    ON [dbo].[TableName]
    FOR INSERT
    AS
    BEGIN
        Some UPDATEs here..
    END

执行“DROP TRIGGER IF EXISTS [dbo].[TriggerName]” 在 PreDeployment-script 中给出了相同的错误。 DROP 在 SSMS 中运行良好,因此对我来说它看起来像是 Visual Studio 中的一个错误。

我在某处读到有人将触发器更改为不执行任何操作,但这真的是微软希望我们做的吗?

感谢您提供的任何帮助!

database visual-studio triggers publish
1个回答
0
投票

这可能是由于触发器和其他数据库对象之间的依赖关系造成的。如果直接从 Visual Studio 中删除触发器,可能会因为这些依赖关系而收到错误。

建议在尝试删除触发器之前检查触发器是否有任何依赖对象。如果发现依赖项,您可能需要在尝试删除触发器之前手动解决它们。

此外,您可以尝试以下步骤来删除触发器:

  1. 在解决方案资源管理器中,找到您的数据库项目。
  2. 展开项目并找到“Triggers”文件夹。
  3. 在“触发器”文件夹中,找到要删除的触发器的 .sql 文件。
  4. 右键单击该文件并选择删除。

在发布配置中,确保您已选择“始终重新创建数据库”或“删除目标中的对象但不在源中”。这将确保触发器在发布时被删除。

© www.soinside.com 2019 - 2024. All rights reserved.