SQL Server 数据工具 v15.1.6:跨数据库索引删除



我有一系列存储的过程,用于在两个数据库之间运行数据迁移。进程位于迁移数据库中。某些进程在源表上创建索引。但是,我不能将索引保留在原位;当过程完成后,我必须放弃它们。在 SQL 中运行进程时,此语句工作正常:

drop index IX_SCA_RPTNBR_ASIGNTYPCD_ENDDT on CHILDSDB2.VLCHA.STAFF_CASE_ASIGN;

但是,在 SSDT 中,为了不出现生成错误,我必须将其更改为:

drop index [$(CHILDSDB2)].VLCHA.STAFF_CASE_ASIGN.IX_SCA_RPTNBR_ASIGNTYPCD_ENDDT;

然后,当我去发布数据库时,出现以下错误:

"DROP INDEX"不允许将数据库名称指定为对象名称的前缀。

因此,基本上,问题在于 SSDT 发布者不会将 SSDT 编译器所需的语句转换为 SQL Server 查询引擎可以处理的语句。

有没有人知道我能做些什么来解决这个问题?

好吧,我至少找到了解决方法。我可以使用动态SQL来删除索引,这绕过了SSDT编译器。在我的书中,这仍然不是一个真正的解决方案,但它可以完成工作。

最新更新