【问题标题】:SQL Server Data Tools v15.1.6: Cross-database index dropSQL Server Data Tools v15.1.6:跨数据库索引删除
【发布时间】:2019-11-26 15:59:22
【问题描述】:

我有一系列在两个数据库之间运行数据迁移的存储过程。 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 查询引擎可以处理的语句。

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

【问题讨论】:

    标签: sql sql-server-data-tools


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2013-09-19
      • 2011-03-10
      • 2014-07-31
      相关资源
      最近更新 更多