sql - 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 查询引擎可以处理的语句。
有谁知道我可以做些什么来解决这个问题?
解决方案
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.
推荐阅读
- macos - 在 macOS 上使用 pyodbc、FreeTDS 和 Kerberos 身份验证连接到 SQL Server
- python - specutils可以用于拟合光谱吗
- java - 如何删除仅包含内容 uri 的文件?
- javascript - 如何在我的 Web 应用程序中嵌入 TKinter 动画?
- arrays - 如何编写内部数组长度不同的嵌套数组?
- php - Laravel 工厂使用自定义创建方法
- java - 在Java中将null替换为空字符串
- r - 如何修改排名标准以指定截止日期
- javascript - 使用 Open Street Maps 在给定地图上显示给定城市
- python - 线程和 mss 问题 - 第二次运行函数时出错