尽管存在索引仍未解决的索引

时间:2018-12-30 16:37:03

标签: sql-server sql-server-data-tools database-project

我正在尝试编写一个存储过程,该操作将DROPs的列存储索引删除,确实存在索引创建脚本,与该索引相关联的表的SSDT表设计器确实显示了正确的索引,而Visual Studio是产生“过程:[dbo]。[TestProcedure]具有对对象[dbo]。[TestTable]。[TestIndex]的未解析的引用”。 “构建操作”设置被设置为在所有三个文件上构建,并且所有对象都在同一架构中。我正在使用带有Update 3和SSDT 14.0.6的Visual Studio Professional 2015 有什么方法可以解决以下代码所产生的参考警告?

我尝试了本文中提出的解决方案,但未能解决问题:SQL Server Data Tools (SSDT) warns of an unresolved table reference, but the table exists

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

1 个答案:

答案 0 :(得分:1)

您可以使用动态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;