PlotDirector/PlotLine/Sql/159_Phase25D_ManuscriptSourceHardDeleteCascades.sql

65 lines
2.2 KiB
Transact-SQL

SET ANSI_NULLS ON;
GO
SET QUOTED_IDENTIFIER ON;
GO
IF OBJECT_ID(N'dbo.SceneManuscriptSources', N'U') IS NOT NULL
AND EXISTS
(
SELECT 1
FROM sys.foreign_keys
WHERE name = N'FK_SceneManuscriptSources_Scenes'
AND parent_object_id = OBJECT_ID(N'dbo.SceneManuscriptSources')
AND delete_referential_action_desc <> N'CASCADE'
)
BEGIN
ALTER TABLE dbo.SceneManuscriptSources DROP CONSTRAINT FK_SceneManuscriptSources_Scenes;
ALTER TABLE dbo.SceneManuscriptSources WITH CHECK
ADD CONSTRAINT FK_SceneManuscriptSources_Scenes
FOREIGN KEY (SceneID) REFERENCES dbo.Scenes(SceneID) ON DELETE CASCADE;
END;
GO
IF OBJECT_ID(N'dbo.SceneManuscriptSources', N'U') IS NOT NULL
AND NOT EXISTS
(
SELECT 1
FROM sys.foreign_keys
WHERE name = N'FK_SceneManuscriptSources_Scenes'
AND parent_object_id = OBJECT_ID(N'dbo.SceneManuscriptSources')
AND delete_referential_action_desc = N'CASCADE'
)
THROW 52010, 'Scene manuscript source hard-delete cascade was not applied.', 1;
GO
IF OBJECT_ID(N'dbo.ManuscriptStructuralChapterSources', N'U') IS NOT NULL
AND NOT EXISTS
(
SELECT 1
FROM sys.foreign_keys
WHERE name = N'FK_ManuscriptStructuralChapterSources_Chapters'
AND parent_object_id = OBJECT_ID(N'dbo.ManuscriptStructuralChapterSources')
AND delete_referential_action_desc = N'CASCADE'
)
THROW 52011, 'Structural chapter source hard-delete cascade was not applied.', 1;
GO
IF OBJECT_ID(N'dbo.ManuscriptStructuralChapterSources', N'U') IS NOT NULL
AND EXISTS
(
SELECT 1
FROM sys.foreign_keys
WHERE name = N'FK_ManuscriptStructuralChapterSources_Chapters'
AND parent_object_id = OBJECT_ID(N'dbo.ManuscriptStructuralChapterSources')
AND delete_referential_action_desc <> N'CASCADE'
)
BEGIN
ALTER TABLE dbo.ManuscriptStructuralChapterSources DROP CONSTRAINT FK_ManuscriptStructuralChapterSources_Chapters;
ALTER TABLE dbo.ManuscriptStructuralChapterSources WITH CHECK
ADD CONSTRAINT FK_ManuscriptStructuralChapterSources_Chapters
FOREIGN KEY (ChapterID) REFERENCES dbo.Chapters(ChapterID) ON DELETE CASCADE;
END;
GO