Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/11/10 10:46:12 (13 years ago)
Author:
cneumuel
Message:

#1260

  • delete cascade for HiveExperiments and Jobs database
  • automatic downloading of HiveExperiments-List in HiveExperimentManager
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/Scripts/prepareHiveDatabase.sql

    r4423 r4769  
    11/* this script is supposed to be executed after the plain DB is generated by the linq-to-sql schema */
     2USE [HeuristicLab.Hive]
     3GO
    24
    35/*
     
    3234ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId ADD ROWGUIDCOL;
    3335ALTER TABLE dbo.AssignedResources WITH NOCHECK ADD CONSTRAINT [DF_AssignedResources_AssignedRessourcesId] DEFAULT (newid()) FOR AssignedRessourcesId;
     36ALTER TABLE [dbo].[AssignedResources]  DROP  CONSTRAINT [Job_AssignedResource]
     37ALTER TABLE [dbo].[AssignedResources]  WITH CHECK ADD  CONSTRAINT [Job_AssignedResource] FOREIGN KEY([JobId])
     38REFERENCES [dbo].[Job] ([JobId])
     39ON UPDATE CASCADE
     40ON DELETE CASCADE
     41GO
     42ALTER TABLE [dbo].[AssignedResources]  DROP  CONSTRAINT [Resource_AssignedResource]
     43ALTER TABLE [dbo].[AssignedResources]  WITH CHECK ADD  CONSTRAINT [Resource_AssignedResource] FOREIGN KEY([ResourceId])
     44REFERENCES [dbo].[Resource] ([ResourceId])
     45ON UPDATE CASCADE
     46ON DELETE CASCADE
     47GO
    3448
    3549ALTER TABLE dbo.Job ALTER COLUMN JobId ADD ROWGUIDCOL;
     
    5165ALTER TABLE dbo.RequiredPlugins WITH NOCHECK ADD CONSTRAINT [DF_RequiredPlugins_RequiredPluginId] DEFAULT (newid()) FOR RequiredPluginId;
    5266
     67ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [Job_RequiredPlugin]
     68ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [Job_RequiredPlugin] FOREIGN KEY([JobId])
     69REFERENCES [dbo].[Job] ([JobId])
     70ON UPDATE CASCADE
     71ON DELETE CASCADE
     72GO
     73
     74ALTER TABLE [dbo].[RequiredPlugins]  DROP  CONSTRAINT [PluginInfo_RequiredPlugin]
     75ALTER TABLE [dbo].[RequiredPlugins]  WITH CHECK ADD  CONSTRAINT [PluginInfo_RequiredPlugin] FOREIGN KEY([PluginId])
     76REFERENCES [dbo].[PluginInfo] ([PluginId])
     77ON UPDATE CASCADE
     78ON DELETE CASCADE
     79GO
     80
    5381ALTER TABLE dbo.Resource ALTER COLUMN ResourceId ADD ROWGUIDCOL;
    5482ALTER TABLE dbo.Resource WITH NOCHECK ADD CONSTRAINT [DF_Resource_ResourceId] DEFAULT (newid()) FOR ResourceId;
     
    6593/* create indices */
    6694CREATE INDEX Index_RequiredPlugins_JobId ON RequiredPlugins(JobId);
     95
     96/* triggers */
     97SET ANSI_NULLS ON
     98GO
     99SET QUOTED_IDENTIFIER ON
     100GO
     101-- =============================================
     102-- Author:    cneumuel
     103-- Create date: 11.11.2010
     104-- Description: Deletes the root-job of the experiment when experiment is deleted
     105-- =============================================
     106CREATE TRIGGER [dbo].[tr_HiveExperimentDeleteCascade] ON [dbo].[HiveExperiment] FOR DELETE AS
     107SET NOCOUNT ON
     108DELETE Job FROM deleted, Job WHERE Job.JobId = deleted.RootJobId
     109GO
     110
     111SET ANSI_NULLS ON
     112GO
     113SET QUOTED_IDENTIFIER ON
     114GO
     115-- =============================================
     116-- Author:    cneumuel
     117-- Create date: 11.11.2010
     118-- Description: Recursively deletes all child-jobs of a job when it is deleted. (Source: http://devio.wordpress.com/2008/05/23/recursive-delete-in-sql-server/)
     119-- =============================================
     120CREATE TRIGGER [dbo].[tr_JobDeleteCascade] ON [dbo].[Job] INSTEAD OF DELETE AS
     121BEGIN
     122  CREATE TABLE #Table(
     123    JobId uniqueidentifier
     124  )
     125  INSERT INTO #Table (JobId)
     126  SELECT JobId FROM deleted
     127 
     128  DECLARE @c INT
     129  SET @c = 0
     130 
     131  WHILE @c <> (SELECT COUNT(JobId) FROM #Table) BEGIN
     132    SELECT @c = COUNT(JobId) FROM #Table
     133   
     134    INSERT INTO #Table (JobId)
     135      SELECT Job.JobId
     136      FROM Job
     137      LEFT OUTER JOIN #Table ON Job.JobId = #Table.JobId
     138      WHERE Job.ParentJobId IN (SELECT JobId FROM #Table)
     139        AND #Table.JobId IS NULL
     140  END
     141 
     142  DELETE Job FROM Job INNER JOIN #Table ON Job.JobId = #Table.JobId
     143END
Note: See TracChangeset for help on using the changeset viewer.