Sql server SQL Azure关于聚集索引和删除约束的问题
我有以下SQL脚本,它似乎可以在本地SQL 2008 R2实例上运行,但在Azure SQL上失败 我已经浏览了网络,但还没有找到任何解决方案 有什么建议吗 我希望避免使用标识栏Sql server SQL Azure关于聚集索引和删除约束的问题,sql-server,azure,azure-sql-database,Sql Server,Azure,Azure Sql Database,我有以下SQL脚本,它似乎可以在本地SQL 2008 R2实例上运行,但在Azure SQL上失败 我已经浏览了网络,但还没有找到任何解决方案 有什么建议吗 我希望避免使用标识栏 CREATE TABLE dbo.[Category] ( CategoryId NVARCHAR(36), CONSTRAINT PK_Category_CategoryId PRIMARY KEY CLUSTERED(CategoryId) ) GO CREATE TABLE dbo.[File]
CREATE TABLE dbo.[Category]
(
CategoryId NVARCHAR(36),
CONSTRAINT PK_Category_CategoryId PRIMARY KEY CLUSTERED(CategoryId)
)
GO
CREATE TABLE dbo.[File]
(
FileId NVARCHAR(36),
CONSTRAINT PK_File_FileId PRIMARY KEY CLUSTERED(FileId)
)
GO
CREATE TABLE dbo.[FileCategory]
(
FileId NVARCHAR(36),
CategoryId NVARCHAR(36)
CONSTRAINT FK_FileCategory_FileId FOREIGN KEY (FileId) REFERENCES [File](FileId) ON DELETE CASCADE,
CONSTRAINT FK_FileCategory_CategoryId FOREIGN KEY (CategoryId) REFERENCES [Category](CategoryId) ON DELETE CASCADE,
)
GO
INSERT INTO [Category] VALUES('ABC')
INSERT INTO [Category] VALUES('DEF')
INSERT INTO [Category] VALUES('GHI')
GO
上述操作运行正常,但在以下语句中失败,错误如下所示:
DELETE FROM [Category] WHERE [CategoryId] = 'ABC'
Msg 40054,第16级,状态1,第3行不带聚集索引的表
此版本的SQL Server不支持。请创建一个
聚集索引,然后重试
尝试在
FileCategory
-
CREATE TABLE [dbo].[FileCategory]
(
[FileId] [nvarchar](36) NOT NULL,
[CategoryId] [nvarchar](36) NOT NULL,
CONSTRAINT [PK_FileCategory] PRIMARY KEY CLUSTERED
(
[FileId], [CategoryId]
) ON [PRIMARY]
) ON [PRIMARY]
在[PRIMARY]上添加约束将导致Msg 40514,级别16,状态1,第23行“文件组引用和分区方案”在该版本的SQL Server中不受支持。删除主要工作,但这仍然支持删除级联吗?对不起,我不是那个意思。我刚刚提议添加一个复合PK。我很抱歉。我猜您的意思是在FileCategory上包含主键约束(除了外键约束),这两个约束都起作用。谢谢