0

如您所见,此语法是合法的

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。

4

0 回答 0