Changeset 4769 for branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/Scripts/prepareHiveDatabase.sql
- Timestamp:
- 11/11/10 10:46:12 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HeuristicLab.Hive/sources/HeuristicLab.Hive/HeuristicLab.Hive.Server.LINQDataAccess/3.3/Scripts/prepareHiveDatabase.sql
r4423 r4769 1 1 /* this script is supposed to be executed after the plain DB is generated by the linq-to-sql schema */ 2 USE [HeuristicLab.Hive] 3 GO 2 4 3 5 /* … … 32 34 ALTER TABLE dbo.AssignedResources ALTER COLUMN AssignedRessourcesId ADD ROWGUIDCOL; 33 35 ALTER TABLE dbo.AssignedResources WITH NOCHECK ADD CONSTRAINT [DF_AssignedResources_AssignedRessourcesId] DEFAULT (newid()) FOR AssignedRessourcesId; 36 ALTER TABLE [dbo].[AssignedResources] DROP CONSTRAINT [Job_AssignedResource] 37 ALTER TABLE [dbo].[AssignedResources] WITH CHECK ADD CONSTRAINT [Job_AssignedResource] FOREIGN KEY([JobId]) 38 REFERENCES [dbo].[Job] ([JobId]) 39 ON UPDATE CASCADE 40 ON DELETE CASCADE 41 GO 42 ALTER TABLE [dbo].[AssignedResources] DROP CONSTRAINT [Resource_AssignedResource] 43 ALTER TABLE [dbo].[AssignedResources] WITH CHECK ADD CONSTRAINT [Resource_AssignedResource] FOREIGN KEY([ResourceId]) 44 REFERENCES [dbo].[Resource] ([ResourceId]) 45 ON UPDATE CASCADE 46 ON DELETE CASCADE 47 GO 34 48 35 49 ALTER TABLE dbo.Job ALTER COLUMN JobId ADD ROWGUIDCOL; … … 51 65 ALTER TABLE dbo.RequiredPlugins WITH NOCHECK ADD CONSTRAINT [DF_RequiredPlugins_RequiredPluginId] DEFAULT (newid()) FOR RequiredPluginId; 52 66 67 ALTER TABLE [dbo].[RequiredPlugins] DROP CONSTRAINT [Job_RequiredPlugin] 68 ALTER TABLE [dbo].[RequiredPlugins] WITH CHECK ADD CONSTRAINT [Job_RequiredPlugin] FOREIGN KEY([JobId]) 69 REFERENCES [dbo].[Job] ([JobId]) 70 ON UPDATE CASCADE 71 ON DELETE CASCADE 72 GO 73 74 ALTER TABLE [dbo].[RequiredPlugins] DROP CONSTRAINT [PluginInfo_RequiredPlugin] 75 ALTER TABLE [dbo].[RequiredPlugins] WITH CHECK ADD CONSTRAINT [PluginInfo_RequiredPlugin] FOREIGN KEY([PluginId]) 76 REFERENCES [dbo].[PluginInfo] ([PluginId]) 77 ON UPDATE CASCADE 78 ON DELETE CASCADE 79 GO 80 53 81 ALTER TABLE dbo.Resource ALTER COLUMN ResourceId ADD ROWGUIDCOL; 54 82 ALTER TABLE dbo.Resource WITH NOCHECK ADD CONSTRAINT [DF_Resource_ResourceId] DEFAULT (newid()) FOR ResourceId; … … 65 93 /* create indices */ 66 94 CREATE INDEX Index_RequiredPlugins_JobId ON RequiredPlugins(JobId); 95 96 /* triggers */ 97 SET ANSI_NULLS ON 98 GO 99 SET QUOTED_IDENTIFIER ON 100 GO 101 -- ============================================= 102 -- Author: cneumuel 103 -- Create date: 11.11.2010 104 -- Description: Deletes the root-job of the experiment when experiment is deleted 105 -- ============================================= 106 CREATE TRIGGER [dbo].[tr_HiveExperimentDeleteCascade] ON [dbo].[HiveExperiment] FOR DELETE AS 107 SET NOCOUNT ON 108 DELETE Job FROM deleted, Job WHERE Job.JobId = deleted.RootJobId 109 GO 110 111 SET ANSI_NULLS ON 112 GO 113 SET QUOTED_IDENTIFIER ON 114 GO 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 -- ============================================= 120 CREATE TRIGGER [dbo].[tr_JobDeleteCascade] ON [dbo].[Job] INSTEAD OF DELETE AS 121 BEGIN 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 143 END
Note: See TracChangeset
for help on using the changeset viewer.