【问题标题】:STATISTICS_INCREMENTAL in CREATE TABLECREATE TABLE 中的 STATISTICS_INCREMENTAL
【发布时间】: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


【解决方案1】:

在 Visual Studio 16.11.8 版本中创建了一个错误修复程序来解决此问题:

https://developercommunity.visualstudio.com/t/VS-sqldb-project-unable-to-create-primar/1528961

【讨论】:

    猜你喜欢
    • 2013-06-29
    • 2019-06-26
    • 2018-06-06
    • 2012-12-12
    • 2016-07-07
    • 1970-01-01
    • 2022-12-02
    • 2013-03-04
    • 2015-11-21
    相关资源
    最近更新 更多