尽管存在索引但未解决的引用
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;
我正在尝试编写一个删除列存储索引的存储过程,索引创建脚本确实存在,与相关索引关联的 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;