小编典典

SQL Azure无法识别我的聚集索引

sql

当我尝试将行插入到SQL Azure表中时,出现以下错误。

此版本的SQL Server不支持没有聚集索引的表。请创建一个聚集索引,然后重试。

我的问题是我在该表上确实有一个聚集索引。我使用SQL Azure MW生成Azure SQL脚本。

这是我正在使用的:

IF  EXISTS (SELECT * FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[tblPasswordReset]') AND type in (N'U'))
DROP TABLE [dbo].[tblPasswordReset]
GO
SET ANSI_NULLS ON
SET QUOTED_IDENTIFIER ON
IF NOT EXISTS (SELECT * FROM sys.objects
    WHERE object_id = OBJECT_ID(N'[dbo].[tblPasswordReset]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[tblPasswordReset](
    [PasswordResetID] [int] IDENTITY(1,1) NOT NULL,
    [PasswordResetGUID] [uniqueidentifier] NULL,
    [MemberID] [int] NULL,
    [RequestDate] [datetime] NULL,
 CONSTRAINT [PK_tblPasswordReset] PRIMARY KEY CLUSTERED 
(
    [PasswordResetID] ASC
)WITH (STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF)
)
END
GO

为什么SQL Azure无法识别我的群集密钥?我的脚本错了吗?


阅读 172

收藏
2021-04-28

共1个答案

小编典典

您的脚本只会创建该表(如果该表尚不存在)。也许还有一个旧版本的表没有聚簇索引?您可以通过以下方式进行检查:

select * from sys.indexes where object_id = object_id('tblPasswordReset')

如果该表不存在聚簇索引,则可以添加如下形式:

alter table tblPasswordReset add constraint
    PK_tblPasswordReset primary key clustered

据我所知,您的陈述确实符合Azure create table spec

2021-04-28