数据库项目在创建索引/触发器之前不会删除它们

时间:2018-07-16 18:19:49

标签: sql-server tsql publish database-project

我有不能通过db项目控制的表,但是我需要索引并对其进行触发。这意味着我不在数据库项目->添加->表上使用鼠标右键。我使用简单的脚本(在db proj上单击鼠标右键->添加->脚本),其中有下一个代码

    GO 
    CREATE NONCLUSTERED INDEX [IX_om_event_venue_id] ON [dbo].[event]([venue_id] ASC)

当我生成发布脚本时,它总是将上面的代码插入到发布脚本中。但是在存在相同索引的情况下不应该这样。 结果我得到一个错误:

  

(1077,1):SQL72014:.Net SqlClient数据提供程序:消息1913,级别16,状态1,行1该操作失败,因为表'dbo.event'中已经存在名称为'IX_om_event_venue_id'的索引或统计信息

我应该怎么做才能使脚本生成器将上面的代码与现有数据库模式进行比较?

PS

例如,我在文件中还有几个这样的表达式:

    GO
CREATE NONCLUSTERED INDEX [IX_om_ticket_voided_invoice_ticket_group_id] ON [dbo].[ticket_voided_invoice]([ticket_group_id] ASC)

但是它们会按照应有的方式处理-如果数据库已经拥有它们,则不会将它们添加到发布脚本中

0 个答案:

没有答案