【发布时间】:2020-11-23 16:06:54
【问题描述】:
这个语法是合法的,你可以看到there
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 解释这一点?我担心自动部署会检测到模型和数据库之间的这种差异,并会尝试在每次部署时重建一个表。
Visual Studio 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。
【问题讨论】:
-
数据库项目是否针对 SQL 2014 或更高版本?
-
@RandyinMarin,目标平台是 Microsoft Azure SQL 数据库。
-
不知道有没有关系,但是在项目数据库设置中,操作选项卡上是否勾选了“自动创建增量”?
-
@RandyinMarin,不,这不相关。
标签: sql-server visual-studio statistics dbproj