32 lines
2.6 KiB
Transact-SQL
32 lines
2.6 KiB
Transact-SQL
/*
|
||
Run this script on SQL Server 2008 or later. There may be flaws if running on earlier versions of SQL Server.
|
||
*/
|
||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[sp_DeleteProject]') AND type in (N'P', N'PC'))
|
||
DROP PROCEDURE [dbo].[sp_DeleteProject]
|
||
GO
|
||
SET QUOTED_IDENTIFIER ON
|
||
GO
|
||
SET ANSI_NULLS ON
|
||
GO
|
||
CREATE PROCEDURE [dbo].[sp_DeleteProject] (@id uniqueidentifier) AS
|
||
BEGIN
|
||
|
||
BEGIN TRANSACTION
|
||
|
||
select Id into #scenarioId2Delete from Scenario where Scenario.ParentId = @id
|
||
delete from History where EntityId in (select id from #scenarioId2Delete)
|
||
delete from Note where ParentId in (select id from #scenarioId2Delete)
|
||
delete from Rate where ParentId in (select id from #scenarioId2Delete)
|
||
delete from Scenario_Detail where Scenario_Detail.ParentID in (select id from #scenarioId2Delete)
|
||
delete from Scenario_Snapshot where ParentID in (select id from #scenarioId2Delete)
|
||
delete from Scenario_Wide where ScenarioId in (select id from #scenarioId2Delete)
|
||
delete from ScenarioAccess where ScenarioAccess.ParentId in (select id from #scenarioId2Delete)
|
||
delete from ScenarioCln where id in (select id from #scenarioId2Delete)
|
||
delete from Scenario where id in (select id from #scenarioId2Delete)
|
||
delete from Project where id = @id
|
||
|
||
COMMIT TRANSACTION
|
||
|
||
END
|
||
GO
|