尽管存在索引但未解决的引用

Unresolved Reference To Index Despite Its Existence

我正在尝试编写一个删除列存储索引的存储过程,索引创建脚本确实存在,与相关索引关联的 table 的 SSDT table 设计器确实存在显示正确的索引,但 Visual Studio 正在生成 "Procedure: [dbo].[TestProcedure] has an unresolved reference to object [dbo].[TestTable].[TestIndex]"。 'Build Action' 设置设置为在所有三个文件上构建,并且所有对象都在同一架构中。我正在使用 Visual Studio Professional 2015 With Update 3 和 SSDT 14.0.6 有什么方法可以解决以下代码产生的参考警告吗?

我尝试了 post 中提出的解决方案,但没有解决问题:

TestTable.sql

CREATE TABLE [dbo].[TestTable]( [Id] INT NOT NULL PRIMARY KEY )

TestIndex.sql

CREATE CLUSTERED COLUMNSTORE INDEX [TestIndex] 
ON [dbo].[TestTable]

TestProcedure.sql

CREATE PROCEDURE dbo.TestProcedure
AS
DROP INDEX TestIndex ON dbo.TestTable

你可以使用动态 SQL:

CREATE PROCEDURE dbo.TestProcedure
AS
BEGIN
  EXEC('DROP INDEX IF EXISTS TestIndex ON dbo.TestTable');
END;

或者仅添加 IF EXISTS

CREATE PROCEDURE dbo.TestProcedure
AS
BEGIN
  DROP INDEX IF EXISTS TestIndex ON dbo.TestTable;
END;