当前位置: 首页 > 面试题库 >

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

严宏朗
2023-03-14
问题内容

当我尝试将行插入到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无法识别我的群集密钥?我的脚本错了吗?


问题答案:

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

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

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

alter table tblPasswordReset add constraint
    PK_tblPasswordReset primary key clustered

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



 类似资料:
  • 本文向大家介绍SQL Server中的聚集索引和非聚集索引之间的区别,包括了SQL Server中的聚集索引和非聚集索引之间的区别的使用技巧和注意事项,需要的朋友参考一下 索引是与实际表或视图相关联的查找表,数据库使用该查找表来改善数据检索性能的计时。在index中, 键存储在结构(B树)中,该结构使SQL Server可以快速有效地查找与键值关联的一行或多行。如果在表上定义了主键和唯一约束,则会

  • 问题内容: 我通过清单中的“导出向导”导出了我的eclipse插件,似乎一切进行得很好(没有错误)。它在zip文件的插件目录中创建了一个.jar文件。 我以为将jar放入我的Eclipse插件目录中将进行安装(在重新启动eclipse之后),但这没有用。Eclipse看不到插件(透视图未显示) 我尝试使用“帮助”->“安装新软件”->“本地存档”,但始终显示“找不到软件” 您能帮我准备好将插件安装

  • 总的来说,我对tomcat和JSP很陌生,我还搜索了无数其他问题,这些问题似乎有完全相同的问题,但没有一个能解决我的问题。 服务器结构包含(以及其他内容,如css文件和其他html资源)一个jsp文件和一个java类: jsp文件包含: Java 类的源文件如下所示: 现在,我(重新)启动tomcat服务器,用浏览器访问jsp文件,并得到以下错误消息: 无法编译 JSP 的类:在生成的 java

  • 问题就在这里。我想在我的设备(三星Galaxy Ace 2)上运行我的Android Studio应用程序。但对我没什么用。告诉我我错过了什么: 2)安装了ADB驱动程序(在设备管理器中可以看到Android Composite ADB接口) 3)ADB设备列表仍然清晰,即使我重置服务器(ADB kill-server,ADB start-server,ADB devices-设备列表清晰) 4)

  • 我有一个thymeleaf表单和Spring引导后端。我有一个model类,它的getters和setters名称有点不同。因此,当我要取那个模型并将它的字段作为表单输入字段时,Tymeleaf不能将它们识别为字段。 窗体适用于区域字段。但对Amt字段不起作用。如果我将isAmt()get方法更改为getIsAmt(),也许我可以修复这个问题。但是我不能更改模态类的任何方法名,因为这个类已经编译好

  • 我这样做是为了解决PostgreSQL中唯一约束的两列中有空值的问题: 请参见此处:使用空列创建唯一约束 但现在我有另一个问题,因为使用索引而不是约束,我有一个错误: 不存在与冲突规范匹配的唯一或排除约束 当我这样做SQL要求: 注意:我确实得到了正确的约束错误,没有“on conflict”行。