如您所见,此语法是合法的
CREATE TABLE dbo.test1
(
ID int not null,
SomeDate datetime2(7) not null,
CONSTRAINT PK_test1 PRIMARY KEY CLUSTERED (ID, SomeDate) WITH (STATISTICS_INCREMENTAL = ON)
ON PS(SomeDate)
) ON PS(SomeDate)
go
我可以在 SQL Server 2017 上毫无问题地运行它,但 Visual Studio 对 DB 项目中的这个脚本不满意。我收到这个错误
SQL70616:为 [dbo].[test1] 指定了不支持的索引选项“StatisticsIncremental”。
我试图解决这个问题
UPDATE STATISTICS dbo.test1 PK_test1 WITH RESAMPLE, INCREMENTAL = ON
但没有运气,我得到了
SQL70001:在此上下文中无法识别此语句。
EXEC 和 sp_executesql 也无法识别。
有没有机会向 DB Project 解释这一点?我担心自动部署会检测到模型和数据库之间的这种差异,并会尝试在每次部署时重建一个表。
视觉工作室 16.8.1
SQL Server 数据工具 16.0.62010.06180
编辑 1:如果我将它放在单独的语句中,它会引发相同的错误。
ALTER TABLE dbo.test1
ADD CONSTRAINT PK_test1
PRIMARY KEY CLUSTERED (ID, SomeDate)
WITH(STATISTICS_INCREMENTAL = ON)
ON PS(SomeDate)
编辑 2:它确实可以作为聚集唯一索引。没有出现错误。可以,但我更愿意将其作为约束。
CREATE UNIQUE CLUSTERED INDEX PK_test1 ON dbo.test1(ID, SomeDate)
WITH(STATISTICS_INCREMENTAL = ON)
ON PS_SportsHub(SomeDate)
编辑 3:目标平台是 Microsoft Azure SQL 数据库。没关系,我也尝试了 SQL Server 2019/2017。