sql-server - 数据库项目在创建索引/触发器之前不会删除它们
问题描述
我有无法通过 db 项目控制的表,但我需要对其进行索引和触发器。这意味着我不在 db proj -> add -> table 上使用鼠标右键。我在有下一个代码的地方使用简单的脚本(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' 的索引或统计信息。
我应该怎么做才能让脚本生成器将上面的代码与现有的数据库模式进行比较?
附言
我在文件中有几个这样的表达式,例如:
GO
CREATE NONCLUSTERED INDEX [IX_om_ticket_voided_invoice_ticket_group_id] ON [dbo].[ticket_voided_invoice]([ticket_group_id] ASC)
但是它们会按应有的方式进行处理 - 如果数据库已经有它们,它们不会添加到发布脚本中
解决方案
推荐阅读
- python - 使用 librosa 下载并打开文件而不写入文件系统
- regex - loopback4 正则表达式 - 匹配任何东西
- c - 传递指针的值
- jsf - 在 rich:fileUpload 中,如果用户尝试上传一个空文件,即 0 字节文件,那么我们如何显示错误弹出窗口
- data-structures - 我在哪里可以找到 Isabelle/HOL 中图形数据结构的定义?
- jquery - 如何将 Thymleaf 表列值绑定到 Java bean 对象
- javascript - Angular firebase subscribe 函数调用了两次
- php - 使用 Xampp 3.2.4 的 PHP (7.3.9) 空白页
- sql - 获取每个视频的视频评论总数
- javascript - 使用或不使用 vue-moment 在 vue js 中格式化我的日期