次の SQL スクリプトは、ローカル SQL 2008 R2 インスタンスでは機能するように見えますが、Azure SQL では失敗します。
私はウェブを精査しましたが、まだ解決策を見つけていません。
助言がありますか?
ID 列は避けたいと思います。
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'
メッセージ 40054、レベル 16、状態 1、行 3 クラスター化インデックスのないテーブルは、このバージョンの SQL Server ではサポートされていません。クラスター化インデックスを作成して、もう一度やり直してください。