首页 > 解决方案 > SQL Server Data Tools v15.1.6:跨数据库索引删除

问题描述

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

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 查询引擎可以处理的语句。

有谁知道我可以做些什么来解决这个问题?

标签: sqlsql-server-data-tools

解决方案


Well, I found a workaround at least. I can use dynamic SQL to drop the indexes, which gets around the SSDT compiler. It's still not a real solution in my book, but it gets the job done.


推荐阅读