IF EXISTS (SELECT * FROM [dbo].[KYScriptLog] SKL WHERE SKL.[MajorVersion] = 5 AND SKL.[MinorVersion] = 1 AND SKL.[Build] = 1 AND SKL.[Revision] = 165 AND SKL.[COMMENT] = '002 TableSchema.SQL') BEGIN SET NOCOUNT ON DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = ''TableSchemaActions'' AND SO.[type] = ''U'') BEGIN DROP TABLE [dbo].[TableSchemaActions] END' EXEC (@COMMAND) SET @COMMAND = ' CREATE TABLE [dbo].[TableSchemaActions] ([DoThis] VARCHAR(100)) ON [PRIMARY]' EXEC (@COMMAND) SET NOEXEC ON END GO INSERT INTO [dbo].[KYScriptLog] ([timestamp], [MajorVersion], [MinorVersion], [Build], [Revision], [CompatibleVersion], [COMMENT]) VALUES(GetDate(), 5, 1, 1, 165, 'Build 5.1.1.165', '002 TableSchema.SQL **FAILED**') GO /************************************************************************************************** * * Please keep this block at the top of this script. If you need to insert script anywhere other * than at the end of this script, insert it after this block. START * **************************************************************************************************/ GO SET IMPLICIT_TRANSACTIONS OFF GO DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER DATABASE [' + DB_NAME() + '] SET RECOVERY SIMPLE' EXEC (@COMMAND) GO IF EXISTS (select * FROM [master].[sys].[databases] [DB] WHERE [DB].[name] = 'Keyhouse_TS') BEGIN DROP DATABASE [Keyhouse_TS] END GO DECLARE @DB NVARCHAR(100) DECLARE @Path NVARCHAR(4000) DECLARE @FN NVARCHAR(100) SET @DB = DB_NAME() SELECT @Path = [filename] FROM master..sysdatabases WHERE name = @DB IF CHARINDEX('\', @Path) > 0 BEGIN SET @FN = SUBSTRING(@Path, LEN(@Path) - CharIndex('\', Reverse(@Path)) + 2, CharIndex('\', Reverse(@Path)) - 1) SET @Path = SUBSTRING(@Path, 1, LEN(@Path) - CharIndex('\', Reverse(@Path))) IF CHARINDEX('.', @FN) > 0 BEGIN SET @FN = SUBSTRING(@FN, 1, LEN(@FN) - CharIndex('.', Reverse(@FN))) END END DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE DATABASE [Keyhouse_TS] ON PRIMARY ( NAME = N''Keyhouse_TS'', FILENAME = N''' + @Path + '\' + @DB + '_TS.mdf'' , SIZE = 100MB , MAXSIZE = UNLIMITED, FILEGROWTH = 20% ) LOG ON ( NAME = N''Keyhouse_TS_log'', FILENAME = N''' + @Path + '\' + @DB + '_TS_1.ldf'' , SIZE = 100MB , MAXSIZE = UNLIMITED , FILEGROWTH = 20%)' EXEC (@COMMAND) GO DECLARE @DB NVARCHAR(100) DECLARE @COMMAND VARCHAR(MAX) SET @DB = DB_NAME() DECLARE @COLLATION VARCHAR(100) select @COLLATION = [DB].[collation_name] from [master].[sys].[databases] [DB] where [DB].[name] = @DB SET @COMMAND = 'ALTER DATABASE [Keyhouse_TS] COLLATE ' + @COLLATION EXEC (@COMMAND) GO ALTER DATABASE [Keyhouse_TS] SET ANSI_NULL_DEFAULT OFF GO ALTER DATABASE [Keyhouse_TS] SET ANSI_NULLS OFF GO ALTER DATABASE [Keyhouse_TS] SET ANSI_PADDING OFF GO ALTER DATABASE [Keyhouse_TS] SET ANSI_WARNINGS OFF GO ALTER DATABASE [Keyhouse_TS] SET ARITHABORT OFF GO ALTER DATABASE [Keyhouse_TS] SET AUTO_CLOSE OFF GO ALTER DATABASE [Keyhouse_TS] SET AUTO_CREATE_STATISTICS ON GO ALTER DATABASE [Keyhouse_TS] SET AUTO_SHRINK OFF GO ALTER DATABASE [Keyhouse_TS] SET AUTO_UPDATE_STATISTICS ON GO ALTER DATABASE [Keyhouse_TS] SET CURSOR_CLOSE_ON_COMMIT OFF GO ALTER DATABASE [Keyhouse_TS] SET CURSOR_DEFAULT GLOBAL GO ALTER DATABASE [Keyhouse_TS] SET CONCAT_NULL_YIELDS_NULL OFF GO ALTER DATABASE [Keyhouse_TS] SET NUMERIC_ROUNDABORT OFF GO ALTER DATABASE [Keyhouse_TS] SET QUOTED_IDENTIFIER OFF GO ALTER DATABASE [Keyhouse_TS] SET RECURSIVE_TRIGGERS OFF GO ALTER DATABASE [Keyhouse_TS] SET DISABLE_BROKER GO ALTER DATABASE [Keyhouse_TS] SET AUTO_UPDATE_STATISTICS_ASYNC OFF GO ALTER DATABASE [Keyhouse_TS] SET DATE_CORRELATION_OPTIMIZATION OFF GO ALTER DATABASE [Keyhouse_TS] SET TRUSTWORTHY OFF GO ALTER DATABASE [Keyhouse_TS] SET ALLOW_SNAPSHOT_ISOLATION OFF GO ALTER DATABASE [Keyhouse_TS] SET PARAMETERIZATION SIMPLE GO ALTER DATABASE [Keyhouse_TS] SET READ_COMMITTED_SNAPSHOT OFF GO ALTER DATABASE [Keyhouse_TS] SET RECOVERY SIMPLE GO ALTER DATABASE [Keyhouse_TS] SET MULTI_USER GO ALTER DATABASE [Keyhouse_TS] SET PAGE_VERIFY CHECKSUM GO ALTER DATABASE [Keyhouse_TS] SET DB_CHAINING OFF GO ALTER DATABASE [Keyhouse_TS] SET READ_WRITE GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'TableSchemaActions' AND SO.[type] = 'U') BEGIN DROP TABLE [dbo].[TableSchemaActions] END GO CREATE TABLE [dbo].[TableSchemaActions] ([DoThis] VARCHAR(100)) ON [PRIMARY] GO /************************************************************************************************** * * Please keep this block at the top of this script. If you need to insert script anywhere other * than at the end of this script, insert it after this block. END * **************************************************************************************************/ -- Function is obsolete. Delete here because it has schema binding and it can create problems -- do not re-create. IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatters' AND SO.[type] = 'TF') BEGIN DROP FUNCTION [dbo].[ky_NETOpenClosedMatters] END GO -- Function is obsolete. Delete, don't recreate IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatterLedger' AND SO.[type] = 'TF') BEGIN DROP FUNCTION [dbo].[ky_NETOpenClosedMatterLedger] END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETSPFixConstraint' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[ky_NETSPFixConstraint] END GO CREATE PROCEDURE [dbo].[ky_NETSPFixConstraint] (@TABLENAME VARCHAR(100), @COLUMNNAME VARCHAR(100), @CORRECTCONSTRAINTNAME VARCHAR(100), @CORRECTVALUE VARCHAR(100)) AS BEGIN DECLARE @COMMAND VARCHAR(MAX) DECLARE @CONSTRAINTS TABLE ([TableName] VARCHAR(200), [ColumnName] VARCHAR(200), [ConstraintName] VARCHAR(200), [Value] VARCHAR(200)) INSERT INTO @CONSTRAINTS ([TableName], [ColumnName], [ConstraintName], [Value]) select SO.[name], SC.[name], SOC.[name] AS [ConstraintName], CONVERT(VARCHAR(MAX), SCM.[text]) AS [DefaultValue] from sys.objects SO inner join sys.columns SC LEFT OUTER JOIN sys.syscomments SCM ON SCM.[id] = sc.default_object_id ON SC.object_id = SO.object_id left outer join sys.sysconstraints SCN inner join sys.objects SOC on SOC.[object_id] = SCN.[constid] on SCN.[id] = so.[object_id] and SCN.[colid] = SC.[column_id] where so.[name] = @TABLENAME and sc.[name] = @COLUMNNAME IF EXISTS (SELECT * FROM @CONSTRAINTS WHERE [ConstraintName] <> @CORRECTCONSTRAINTNAME) BEGIN SELECT @COMMAND = 'ALTER TABLE [dbo].[' + CT.[TableName] + '] DROP CONSTRAINT [' + CT.[ConstraintName] + ']' FROM @CONSTRAINTS CT EXEC (@COMMAND) END IF NOT EXISTS (SELECT * FROM @CONSTRAINTS WHERE [ConstraintName] = @CORRECTCONSTRAINTNAME) BEGIN SELECT @COMMAND = 'UPDATE TAB SET TAB.[' + CT.[ColumnName] + '] = ' + @CORRECTVALUE + ' FROM [dbo].[' + CT.[TableName] + '] TAB WHERE TAB.[' + CT.[ColumnName] + '] IS NULL' FROM @CONSTRAINTS CT EXEC (@COMMAND) END IF NOT EXISTS (SELECT * FROM @CONSTRAINTS WHERE [ConstraintName] = @CORRECTCONSTRAINTNAME) BEGIN SELECT @COMMAND = 'ALTER TABLE [dbo].[' + CT.[TableName] + '] ADD CONSTRAINT [' + @CORRECTCONSTRAINTNAME + '] DEFAULT ' + @CORRECTVALUE + ' FOR [' + CT.[ColumnName] + ']' FROM @CONSTRAINTS CT EXEC (@COMMAND) END END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETSPDropExistingIndex' AND SO.[type] = 'P') BEGIN DROP PROCEDURE [dbo].[ky_NETSPDropExistingIndex] END GO CREATE PROCEDURE [dbo].[ky_NETSPDropExistingIndex] (@TableName VARCHAR(200), @IndexName VARCHAR(200)) AS /************************************************************************* * * [dbo].[ky_NETSPDropExistingIndex] * Drops an index if it exists * *************************************************************************/ BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = @IndexName WHERE SO.[name] = @TableName AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP INDEX [dbo].[' + @TableName + '].[' + @IndexName + ']' EXEC (@COMMAND) END END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ISSAM4' AND SO.[type] = 'FN') BEGIN DROP FUNCTION [dbo].[ISSAM4] END GO CREATE FUNCTION [dbo].[ISSAM4] () RETURNS BIT AS BEGIN DECLARE @ISSAM4 BIT IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'Transactions' AND SO.[type] = 'U') BEGIN SET @ISSAM4 = 1 END ELSE BEGIN SET @ISSAM4 = 0 END RETURN @ISSAM4 END GO /******************************************************************************** Table Changes for Document Management - With support for IManage ********************************************************************************/ GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'DAIMXref' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[DAIMXRef] ([TrackReference] int, [IMDocID] varchar(500), [FILEPATH] varchar(255), CONSTRAINT [PK_DAIMXRef] PRIMARY KEY CLUSTERED ([TrackReference] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'DAIMXRefRetired' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[DAIMXRefRetired] ([TrackReference] int, [IMDocID] varchar(500), [FILEPATH] varchar(255)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_DocID' WHERE SO.[name] = 'DAIMXref' AND SO.[type] = 'U') BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_DocID] ON [dbo].[DAIMXRef] ([IMDocID] ASC, [TrackReference] ASC) ON [PRIMARY] END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'FILEPATH' WHERE SO.[name] = 'DAIMXRef' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[DAIMXRef] ADD [FILEPATH] VARCHAR(255)' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'FILEPATH' WHERE SO.[name] = 'DAIMXRefRetired' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[DAIMXRefRetired] ADD [FILEPATH] VARCHAR(255)' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'CLSIMXref' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[CLSIMXRef] ([CLASSCODE] varchar(20), [IMCLASS] varchar(500), [IMLOCATION] varchar(500), CONSTRAINT [PK_CLSIMXRef] PRIMARY KEY CLUSTERED ([CLASSCODE] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'IManageCfg' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[IManageCfg] ([IManageInstance] varchar(50), [IManageDatabase] varchar(50), [MatterField] varchar(50)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'IManage' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[IManage] ([ACTIVE] [int]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'DAIMList' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[DAIMList] ([ID] int identity(1, 1) not null, [HANDLER] VARCHAR(10), [IMDocID] VARCHAR(500), [Description] VARCHAR(2000), [DocumentDate] datetime, [IMType] VARCHAR(20), [IMClass] VARCHAR(20), [OriginalDesc] VARCHAR(1000), [EmailFrom] VARCHAR(200), [EmailTo] VARCHAR(1000), [EmailSent] datetime, CONSTRAINT [PK_DAIMList] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_Handler' WHERE SO.[name] = 'DAIMList' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_Handler] ON [dbo].[DAIMList] ([HANDLER] ASC) INCLUDE ([IMDocID], [DocumentDate]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'IMDOCID' WHERE SO.[name] = 'BriefDocuments') BEGIN ALTER TABLE [dbo].[BriefDocuments] ADD [IMDOCID] varchar(500) END GO /****************************************************************** * * Build 81 Table Changes * ******************************************************************/ IF NOT EXISTS(SELECT * FROM sys.objects SO WHERE so.[name] = 'UDFCategory') BEGIN CREATE TABLE [dbo].[UDFCategory] ([ID] [int] IDENTITY(1,1) NOT NULL, [UDFCategory] [varchar](100) NULL, CONSTRAINT [PK_UDFCategory] PRIMARY KEY CLUSTERED ([ID] ASC) ON [PRIMARY]) ON [PRIMARY] END GO -- Add UDFCategory to the SystemUserDefinedFields Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'SystemUserDefinedFields' AND SC.[name] = 'UDFCategory' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].SystemUserDefinedFields' + char(13) + char(10) + ' ADD UDFCategory int NULL' EXEC (@command) END GO -- Add OrgClosedDate to the Matters Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'Matters' AND SC.[name] = 'OrgClosedDate' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].Matters' + char(13) + char(10) + ' ADD OrgClosedDate DateTime NULL' EXEC (@command) END GO -- Add ReOpenedDate to the Matters Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'Matters' AND SC.[name] = 'ReOpenedDate' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].Matters' + char(13) + char(10) + ' ADD ReOpenedDate DateTime NULL' EXEC (@command) END GO -- Add OrgClosedDate to the Closed Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'Closed' AND SC.[name] = 'OrgClosedDate' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].Closed' + char(13) + char(10) + ' ADD OrgClosedDate DateTime NULL' EXEC (@command) SET @command = 'Update Closed' + char(13) + char(10) + 'Set OrgClosedDate = DateClosed' EXEC (@command) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'BillHeader') BEGIN -- Add BillSent to the BillHeader Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'BillHeader' AND SC.[name] = 'BillSent' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].BillHeader' + char(13) + char(10) + ' ADD BillSent Char(1) NULL' EXEC (@command) SET @command = 'update [dbo].BillHeader' + char(13) + char(10) + ' Set BillSent = ''Y'' Where BillNo <> 0' -- set ALL bills to yes if they have an Invoice No.. EXEC (@command) SET @command = 'update [dbo].BillHeader' + char(13) + char(10) + ' Set BillSent = ''N'' Where BillNo = 0' -- set ALL bills to No if they have no Invoice No, ie still in Draft.. EXEC (@command) END END GO IF NOT EXISTS(SELECT * FROM sys.objects SO WHERE so.[name] = 'CourtDateList') BEGIN CREATE TABLE [dbo].[CourtDateList]( [Date] [datetime] NOT NULL, [WeekDay] [char](10) NULL, [Time] [float] NULL, [AmPM] [char](2) NULL, [CourtHour] [int] NULL, [CourtMinute] [int] NULL, [CourtAt] [datetime] NULL, CONSTRAINT [PK_CourtDateList] PRIMARY KEY CLUSTERED ( [Date] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END IF NOT EXISTS(SELECT * FROM sys.objects SO WHERE so.[name] = 'CourtDiary') BEGIN CREATE TABLE [dbo].[CourtDiary]( [COURTDIARYRECORDNO] [int] IDENTITY(1,1) NOT NULL, [COURTDIARYAREACODE] [varchar](6) NULL, [COURTDIARYSEQ] [smallint] NULL, [COURTDIARYMONTHNO] [smallint] NULL, [COURTDIARYWEEKNO] [smallint] NULL, [COURTDIARYDAYNO] [smallint] NULL, [COURTDIARYTIME] [float] NULL, [COURTDIARYAMPM] [varchar](2) NULL, CONSTRAINT [PK_CourtDiary] PRIMARY KEY CLUSTERED ( [COURTDIARYRECORDNO] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END -- Add Conv to the DebtAllocations Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'DebtAllocations' AND SC.[name] = 'Conv' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].DebtAllocations' + char(13) + char(10) + ' ADD Conv [Char] (1) NULL' EXEC (@command) END GO -- Add fees to the DiaryAttachments Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'DiaryAttachments' AND SC.[name] = 'Fees' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].DiaryAttachments' + char(13) + char(10) + ' ADD Fees int NULL' EXEC (@command) SET @command = 'update DiaryAttachments' + char(13) + char(10) + 'set Fees = 0' EXEC (@command) END GO -- Add outlays to the DiaryAttachments Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'DiaryAttachments' AND SC.[name] = 'Outlay' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].DiaryAttachments' + char(13) + char(10) + ' ADD Outlay int NULL' EXEC (@command) SET @command = 'Update DiaryAttachments' + char(13) + char(10) + 'Set Outlay = 0' EXEC (@command) END GO -- Add outlays to the DiaryAttachments Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'DiaryAttachments' AND SC.[name] = 'OutlaySupplier' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].DiaryAttachments' + char(13) + char(10) + ' ADD OutlaySupplier int NULL' EXEC (@command) SET @command = 'Update DiaryAttachments' + char(13) + char(10) + 'Set OutlaySupplier = 0' EXEC (@command) END GO -- Add EffectiveDate to the DebtCostingLedger Table DECLARE @Found int DECLARE @command varchar(8000) SELECT @Found = COUNT(1) FROM sysobjects SO INNER JOIN syscolumns SC ON SC.[id] = SO.[id] WHERE SO.[name] = 'DebtCostingLedger' AND SC.[name] = 'EffectiveDate' IF @Found = 0 BEGIN SET @command = 'ALTER TABLE [dbo].DebtCostingLedger' + char(13) + char(10) + ' ADD EffectiveDate [DateTime] NULL' EXEC (@command) END GO /****************************************************************** * * Create new tables and/or Table Modifications * ******************************************************************/ IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'MatterNETPrivileges' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[MatterNETPrivileges] ([MATTER] VARCHAR(20), [Privileges] BIGINT CONSTRAINT [PK_MatterNETPrivileges] PRIMARY KEY CLUSTERED ([MATTER] ASC)) ON [PRIMARY] END GO /********************************************************* pre-populate MatterNetPrivileges with the Permissions from the original matters table *********************************************************/ IF EXISTS (SELECT * FROM [dbo].[matters] MAT WHERE ISNULL(MAT.[Permissions], 0) <> 0) BEGIN IF NOT EXISTS (SELECT * FROM [dbo].[MatterNETPrivileges]) BEGIN INSERT INTO [dbo].[MatterNetPrivileges] ([MATTER], [Privileges]) SELECT CONVERT(VARCHAR(20), RTRIM(ISNULL(MAT.[Code], ''))), CONVERT(BIGINT, MAT.[Permissions]) FROM [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[MatterNETPrivileges] MNP ON MNP.[MATTER] = MAT.[Code] WHERE ISNULL(MAT.[permissions], 0) <> 0 AND MNP.[MATTER] IS NULL END END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'HandlerNETLogons' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[HandlerNETLogons] ([HANDLER] VARCHAR(10), [Password] VARCHAR(180), [Active] VARCHAR(180), [Supervisor] VARCHAR(180) CONSTRAINT [PK_HandlerNETLogons] PRIMARY KEY CLUSTERED ([HANDLER] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'SecurityNETGroups' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[SecurityNETGroups] ([GroupID] INT, [BitWiseID] BIGINT, [GroupName] VARCHAR(200) CONSTRAINT [PK_SecurityNETGroups] PRIMARY KEY CLUSTERED ([GroupID] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'HandlerNETGroupMembership' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[HandlerNETGroupMembership] ([HANDLER] VARCHAR(10), [BitWiseID] BIGINT CONSTRAINT [PK_HandlerNETGroupMembership] PRIMARY KEY CLUSTERED ([HANDLER] ASC)) ON [PRIMARY] END GO /****************************************************************** * * Populate new tables from old tables - e.g. JGroups, DSSW21, etc * this will only happen if there is nothing in those tables yet. * ******************************************************************/ IF NOT EXISTS (SELECT * FROM [dbo].[SecurityNETGroups]) BEGIN DECLARE @GroupID int DECLARE @COMMAND VARCHAR(MAX) SET @GroupID = 0 WHILE (@GroupID < 16) BEGIN SET @GroupID = @GroupID + 1 SET @COMMAND = ' INSERT INTO [dbo].[SecurityNETGroups] ([GroupID], [BitWiseID], [GroupName]) SELECT OG.[GroupID], OG.[BitWiseID], OG.[GroupName] FROM (SELECT CONVERT(INT, ' + CONVERT(VARCHAR(2), @GroupID) + ') AS [GroupID], CONVERT(BIGINT, POWER(CONVERT(BIGINT, 2), CONVERT(BIGINT, ' + CONVERT(VARCHAR(2), @GroupID - 1) + '))) AS [BitWiseID], CONVERT(VARCHAR(200), RTRIM(ISNULL(JGRP_G' + CONVERT(VARCHAR(2), @GroupID) + ', ''''))) AS [GroupName] FROM [dbo].[JGroups] WHERE RTRIM(ISNULL(JGRP_G' + CONVERT(VARCHAR(2), @GroupID) + ', '''')) <> '''') OG LEFT OUTER JOIN [dbo].[SecurityNETGroups] SNG ON SNG.[GroupID] = OG.[GroupID] WHERE SNG.[GroupID] IS NULL' EXEC (@COMMAND) END END GO /****** Object: Table [dbo].[crgroup] Script Date: 03/10/2014 17:45:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[crgroup]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[crgroup]( [groupid] [decimal](18, 0) IDENTITY(1,1) NOT NULL, [groupname] [varchar](500) NULL, [created_on] [datetime] NULL, [modified_on] [datetime] NULL, [status] [char](10) NULL, CONSTRAINT [PK_CrystalReport_Group] PRIMARY KEY CLUSTERED ( [groupid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_PADDING OFF GO /****** Object: Table [dbo].[ExceptionLog] Script Date: 03/10/2014 17:45:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ExceptionLog]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[ExceptionLog]( [ExceptionLogId] [int] IDENTITY(1,1) NOT NULL, [CurrentLogOn] [varchar](100) NULL, [ExceptionDate] [datetime] NOT NULL, [ExceptionMessage] [varchar](500) NOT NULL, [Source] [varchar](200) NOT NULL, [MethodName] [varchar](500) NOT NULL, [StackTrace] [varchar](7000) NOT NULL, CONSTRAINT [PK_ExceptionLog] PRIMARY KEY CLUSTERED ( [ExceptionLogId] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_PADDING OFF GO /****** Object: Table [dbo].[Settings] Script Date: 03/10/2014 17:45:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Settings]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[Settings]( [SettingID] [int] IDENTITY(1,1) NOT NULL, [KeyName] [varchar](50) NOT NULL, [KeyValue] [varchar](100) NOT NULL, CONSTRAINT [PK_Settings] PRIMARY KEY CLUSTERED ( [SettingID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_PADDING OFF GO /****** Object: Table [dbo].[CRReportGroup] Script Date: 03/10/2014 17:45:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CRReportGroup]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[CRReportGroup]( [Reportid] [decimal](18, 0) NOT NULL, [groupid] [decimal](18, 0) NOT NULL ) ON [PRIMARY] END GO /****** Object: Table [dbo].[CRReport] Script Date: 03/10/2014 17:45:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CRReport]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[CRReport]( [Reportid] [decimal](18, 0) IDENTITY(1,1) NOT NULL, [name] [varchar](500) NULL, [filename] [varchar](500) NULL, [lastrundate] [datetime] NULL, [lastruntime] [datetime] NULL, [confrimparameter] [varchar](50) NULL, [created_on] [datetime] NULL, [modified_on] [datetime] NULL, [status] [char](10) NULL, [report_type] [char](10) NULL, CONSTRAINT [PK_CRReport] PRIMARY KEY CLUSTERED ( [Reportid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_PADDING OFF GO /****** Object: Table [dbo].[CRParameter] Script Date: 03/10/2014 17:45:47 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[CRParameter]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[CRParameter]( [paramid] [decimal](18, 0) IDENTITY(1,1) NOT NULL, [reportid] [decimal](18, 0) NOT NULL, [userprompt] [varchar](100) NULL, [parametername] [varchar](100) NULL, [parametervalue] [varchar](100) NULL, [parameterformat] [varchar](50) NULL, [parametertype] [varchar](50) NULL, [parameterlength] [decimal](18, 0) NULL, [defaultvalue] [varchar](100) NULL, [requiredfield] [char](10) NULL, [userrequest] [char](10) NULL, [infile] [varchar](50) NULL, [controltype] [varchar](50) NULL, [listoption] [text] NULL, CONSTRAINT [PK_CRParameter] PRIMARY KEY CLUSTERED ( [paramid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] END GO SET ANSI_PADDING OFF GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'HandlerControlSettings' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[HandlerControlSettings] ([HANDLER] VARCHAR(10), [ControlName] VARCHAR(50), [OwnerName] VARCHAR(50), [ControlSettings] NVARCHAR(MAX) CONSTRAINT [PK_HandlerControlSettings] PRIMARY KEY CLUSTERED ([HANDLER] ASC, [ControlName] ASC, [OwnerName] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'ControlViews' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[ControlViews] ([id] INT IDENTITY(1, 1), [HANDLER] VARCHAR(10), [View] VARCHAR(200), [ControlName] VARCHAR(50), [OwnerName] VARCHAR(50), [Default] int, [ControlSettings] NVARCHAR(MAX) CONSTRAINT [PK_ControlViews] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlViews' WHERE SO.[name] = 'ControlViews' AND SO.[type] = 'U') BEGIN DROP INDEX [dbo].[ControlViews].[IX_ControlViews] END GO IF EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlViews2' WHERE SO.[name] = 'ControlViews' AND SO.[type] = 'U') BEGIN DROP INDEX [dbo].[ControlViews].[IX_ControlViews2] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlViews3' WHERE SO.[name] = 'ControlViews' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_ControlViews3] ON [dbo].[ControlViews] ([HANDLER] ASC) INCLUDE([Default], [ControlName], [OwnerName], [View]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[syscolumns] SC ON SC.[id] = SO.[object_id] AND SC.[name] = 'QueryID' WHERE SO.[name] = 'ControlViews') BEGIN ALTER TABLE [dbo].[ControlViews] ADD QueryID int END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlViewsQ' WHERE SO.[name] = 'ControlViews' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_ControlViewsQ] ON [dbo].[ControlViews] ([QueryID] ASC) INCLUDE([id], [Default], [ControlName], [OwnerName], [View]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'ControlQueries' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[ControlQueries] ([id] INT IDENTITY(1, 1), [HANDLER] VARCHAR(10), [Query] VARCHAR(200), [ControlName] VARCHAR(50), [OwnerName] VARCHAR(50), [Default] int, [ControlSettings] NVARCHAR(MAX) CONSTRAINT [PK_ControlQueries] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlQueries' WHERE SO.[name] = 'ControlQueries' AND SO.[type] = 'U') BEGIN DROP INDEX [dbo].[ControlQueries].[IX_ControlQueries] END GO IF EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlQueries2' WHERE SO.[name] = 'ControlQueries' AND SO.[type] = 'U') BEGIN DROP INDEX [dbo].[ControlQueries].[IX_ControlQueries2] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_ControlQueries3' WHERE SO.[name] = 'ControlQueries' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_ControlQueries3] ON [dbo].[ControlQueries] ([HANDLER] ASC) INCLUDE([Default], [ControlName], [OwnerName], [Query]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'UDFCategory' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[UDFCategory] ([id] INT IDENTITY(1, 1) NOT NULL, [UDFCategory] VARCHAR(100) NULL CONSTRAINT [PK_UDFCategory] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] WHERE SO.[name] = 'SystemUserDefinedFields' AND SC.[name] = 'UDFCategory') BEGIN ALTER TABLE [dbo].[SystemUserDefinedFields] ADD [UDFCategory] int NULL END GO /****** Object: Table [dbo].[GlobalFilters] Script Date: 04/23/2014 19:37:29 ******/ IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[GlobalFilters]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[GlobalFilters]( [FilterID] [int] IDENTITY(1,1) NOT NULL, [FilterDescription] [nvarchar](50) NULL, [FilterExpression] [nvarchar](1000) NULL, [ReferredModule] [nvarchar](50) NULL, CONSTRAINT [PK_GlobalFilters] PRIMARY KEY CLUSTERED ( [FilterID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO /****** Object: Table [dbo].[UserFilters] Script Date: 04/23/2014 19:39:00 ******/ IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UserFilters]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[UserFilters]( [UserFilterID] [int] IDENTITY(1,1) NOT NULL, [UserFilterDerscription] [nvarchar](50) NULL, [UserFilterExpression] [nvarchar](1000) NULL, [UserRefCode] [nvarchar](20) NULL, [ReferredModule] [nvarchar](50) NULL, CONSTRAINT [PK_UserFilters] PRIMARY KEY CLUSTERED ( [UserFilterID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO IF EXISTS(select top 1 1 from sys.objects where name='control') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='control') AND name='AlarmStartupLaunch') BEGIN ALTER TABLE CONTROL ADD AlarmStartupLaunch NVARCHAR(1) END END GO IF EXISTS(SELECT TOP 1 1 FROM SYS.OBJECTS WHERE name='control') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='control') AND name='DocumentNamingMethod') BEGIN ALTER TABLE CONTROL ADD DocumentNamingMethod NVARCHAR(1) END END GO IF EXISTS(SELECT TOP 1 1 FROM SYS.OBJECTS WHERE name='control') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='control') AND name='IsFileItemCodeAutoGen') BEGIN ALTER TABLE CONTROL ADD IsFileItemCodeAutoGen INT END END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[UserSettings]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[UserSettings]( [SettingID] [int] IDENTITY(1,1) NOT NULL, [Handler] [nvarchar](10) NOT NULL, [Key] [nvarchar](100) NOT NULL, [Value] [nvarchar](max) NOT NULL, CONSTRAINT [PK_UserSettings] PRIMARY KEY CLUSTERED ( [SettingID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY] ) ON [PRIMARY] END GO IF EXISTS(SELECT TOP 1 1 FROM SYS.OBJECTS WHERE name='Undertakings') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='Undertakings') AND name='DischargeDescription') BEGIN ALTER TABLE Undertakings ADD DischargeDescription nvarchar(100) END END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[UndertakingLog]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[UndertakingLog]( [UndertakingLogID] [int] IDENTITY(1,1) NOT NULL, [UndertakingID] [bigint] NOT NULL, [FieldChanges] [char](200) NULL, [FromValue] [text] NULL, [ToValue] [text] NULL, [ByWho] [char](200) NULL, [ModifiedDate] [datetime] NULL, CONSTRAINT [PK_UndertakingLog] PRIMARY KEY CLUSTERED ( [UndertakingLogID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO WHERE SO.[name] = 'BillLogging' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[BillLogging] ([ID] int identity(1, 1) NOT NULL, [DATE] datetime NOT NULL, [Handler] VARCHAR(10) NOT NULL, [DRAFTNO] int NOT NULL, [Action] VARCHAR(200) NOT NULL, CONSTRAINT [PK_BillLogging] PRIMARY KEY CLUSTERED ([ID] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_HandlerActions' WHERE SO.[name] = 'BillLogging' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_HandlerActions] ON [dbo].[BillLogging] ([Handler] ASC) INCLUDE ([DRAFTNO], [DATE]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_DraftActions' WHERE SO.[name] = 'BillLogging' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_DraftActions] ON [dbo].[BillLogging] ([DRAFTNO] ASC) INCLUDE ([DATE], [Handler]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_DateActions' WHERE SO.[name] = 'BillLogging' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_DateActions] ON [dbo].[BillLogging] ([DATE] ASC) INCLUDE ([Handler], [DRAFTNO]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM sys.[objects] SO inner join sys.[columns] SC on SC.[object_id] = so.[object_id] AND SC.[name] = 'Action' AND SC.[max_length] = 200 WHERE so.[name] = 'BillLogging' AND so.[type] = 'U') BEGIN ALTER TABLE [dbo].[BillLogging] ALTER COLUMN ACTION VARCHAR(MAX) NOT NULL END GO IF NOT EXISTS (SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'DisplayText' WHERE SO.[name] = 'Diary' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[Diary] ADD DisplayText NVARCHAR(200) END GO IF NOT EXISTS (SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Flag' WHERE SO.[name] = 'Diary' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[Diary] ADD Flag TINYINT END GO IF EXISTS (SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'DisplayText' WHERE SO.[name] = 'Diary' AND SO.[type] = 'U') BEGIN UPDATE Diary SET DisplayText=[dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), [TEXT1]), ''), 200) WHERE DisplayText IS NULL END GO IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[ActionFlag]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[ActionFlag]( [ActionFlagID] [tinyint] NOT NULL, [Description] [nvarchar](50) NULL, [IsActive] [bit] NULL, CONSTRAINT [PK_ActionFlag] PRIMARY KEY CLUSTERED ( [ActionFlagID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] END GO WHILE EXISTS (SELECT SC.[name], DC.[name] FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'ActionFlag' AND SO.[type] = 'U' AND DC.[name] <> 'DF_FlagID') BEGIN DECLARE @RogueConstraint VARCHAR(MAX) SELECT TOP 1 @RogueConstraint = DC.[name] FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'ActionFlag' AND SO.[type] = 'U' AND DC.[name] <> 'DF_FlagID' DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[ActionFlag] DROP CONSTRAINT [' + @RogueConstraint + ']' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT SC.[name], DC.[name] FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'ActionFlag' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[ActionFlag] ADD CONSTRAINT DF_FlagID DEFAULT 0 FOR [ActionFlagID] END GO IF EXISTS(SELECT TOP 1 1 FROM SYS.OBJECTS WHERE name='MatterChargeOutRates') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='MatterChargeOutRates') AND name='EffectiveDate') BEGIN ALTER TABLE [MatterChargeOutRates] ADD EffectiveDate DATETIME END END GO IF EXISTS(SELECT TOP 1 1 FROM SYS.OBJECTS WHERE name='ClientChargeOutRates') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='ClientChargeOutRates') AND name='EffectiveDate') BEGIN ALTER TABLE ClientChargeOutRates ADD EffectiveDate DATETIME END END GO IF NOT EXISTS (select SC.* from sys.objects SO inner join sys.syscolumns SC on sc.[id] = SO.[object_id] where so.[name] = 'CloseDiary' and SC.[name] = 'TxmDate') BEGIN ALTER TABLE [dbo].[CloseDiary] ADD [TxmDate] datetime null END GO IF NOT EXISTS (select SC.* from sys.objects SO inner join sys.syscolumns SC on sc.[id] = SO.[object_id] where so.[name] = 'CloseDiary' and SC.[name] = 'TxmSeqNo') BEGIN ALTER TABLE [dbo].[CloseDiary] ADD [TxmSeqNo] int null END GO IF NOT EXISTS (SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'FixedFee' WHERE SO.[name] = 'Matters' AND SO.[type] = 'U') BEGIN ALTER TABLE Matters ADD FixedFee CHAR(1) DEFAULT('N') END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'DiaryAttachmentVersioning' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[DiaryAttachmentVersioning] ([id] int IDENTITY(1, 1) NOT NULL, [TrackReference] int DEFAULT 0 NOT NULL, [IMDocID] varchar(500) DEFAULT '' NOT NULL, [Version] int DEFAULT 1 NOT NULL, [Filepath] varchar(255) NOT NULL, [Comments] varchar(MAX) NOT NULL, [Timestamp] datetime NOT NULL, [Handler] varchar(10) NOT NULL, CONSTRAINT [PK_DiaryAttachmentVersioning] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_DiaryAttachmentsV1' WHERE SO.[name] = 'DiaryAttachmentVersioning' AND SO.[type] = 'U') BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_DiaryAttachmentsV1] ON [dbo].[DiaryAttachmentVersioning] ([TrackReference] ASC, [IMDocID] ASC, [Version] ASC) INCLUDE([Timestamp], [Handler]) ON [PRIMARY] END GO IF OBJECT_ID(N'TaxHead',N'U')IS NULL BEGIN CREATE TABLE [dbo].[TaxHead] ([TAXHEAD] [varchar](2) NOT NULL, [DESCRIPTION] [varchar](20) NULL, CONSTRAINT [PK_TaxHead] PRIMARY KEY CLUSTERED ([TAXHEAD] ASC) ON [PRIMARY]) ON [PRIMARY] END GO IF OBJECT_ID(N'ChargeType',N'U')IS NULL BEGIN CREATE TABLE ChargeType ([TAXHEAD] [varchar](2) NOT NULL, [CHARGETYPE] [varchar](2) NOT NULL, [DESCRIPTION] [varchar](35) NULL, CONSTRAINT [PK_ChargeType] PRIMARY KEY CLUSTERED ([TAXHEAD] ASC, [CHARGETYPE] ASC) ON [PRIMARY]) ON [PRIMARY] END GO IF OBJECT_ID(N'NotificationMessageUserResponse',N'U')IS NULL BEGIN CREATE TABLE NotificationMessageUserResponse ( NotifyMsgId INT IDENTITY(1,1), MatterCode NVARCHAR(20), MsgCategory NVARCHAR(100), NotifyMsg NVARCHAR(1000), Usercode NVARCHAR(8), MsgGeneratedDate DATETIME, UserResponsedDate DATETIME, UserOption NVARCHAR(20), CONSTRAINT pk_NotificationMsg_NotifyMsgId PRIMARY KEY(NotifyMsgId) ) ON [PRIMARY] END GO IF NOT EXISTS (SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'ShowCommentInAlarm' WHERE SO.[name] = 'Matters' AND SO.[type] = 'U') BEGIN ALTER TABLE MATTERS ADD ShowCommentInAlarm CHAR(1) DEFAULT('N') END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ChequeRequisitionHeader') BEGIN IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[syscolumns] SC ON SC.[id] = SO.[object_id] AND SC.[name] = 'OutlayCode' WHERE SO.[name] = 'ChequeRequisitionHeader') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[ChequeRequisitionHeader] ADD [OutlayCode] VARCHAR(10) DEFAULT '''' NOT NULL' EXEC (@COMMAND) END END GO DECLARE @Size INT SELECT @Size = SC.[length] FROM [sys].[objects] SO INNER JOIN [sys].[syscolumns] SC ON SC.[id] = SO.[object_id] AND SC.[name] = 'YourRef' WHERE SO.[name] = 'matters' AND SO.[type] = 'U' IF (@Size < 40) BEGIN ALTER TABLE [dbo].[matters] ALTER COLUMN [YourRef] CHAR(40) END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'ModuleGroupPermissions' AND SO.[type] = 'U') BEGIN CREATE TABLE ModuleGroupPermissions( [ReportID] [int] NOT NULL, [GroupID] [int] NOT NULL, [IsActive] [bit] NOT NULL ) ON [PRIMARY] ALTER TABLE ModuleGroupPermissions ADD DEFAULT ((1)) FOR [IsActive] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'ModuleGroupUsers' AND SO.[type] = 'U') BEGIN CREATE TABLE ModuleGroupUsers( [UserCode] [char](5) NOT NULL, [GroupID] [int] NOT NULL, [IsActive] [bit] NOT NULL ) ON [PRIMARY] ALTER TABLE ModuleGroupUsers ADD DEFAULT ((1)) FOR [IsActive] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'ModuleGroup' AND SO.[type] = 'U') BEGIN CREATE TABLE ModuleGroup( [GroupID] [int] IDENTITY(1,1) NOT NULL, [GroupName] [nvarchar](100) NOT NULL, [Description] [nvarchar](250) NULL, [IsActive] [bit] NOT NULL, CONSTRAINT [PK_ModuleGroup] PRIMARY KEY CLUSTERED ( [GroupID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] ALTER TABLE ModuleGroup ADD CONSTRAINT [DF_ModuleGroup_IsActive] DEFAULT ((1)) FOR [IsActive] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'FileTypes' AND SO.[type] = 'U') BEGIN CREATE TABLE FileTypes ( [Id] INT IDENTITY(1,1), [Description] NVARCHAR(20), [Type] NVARCHAR(5), [FilePath] NVARCHAR(500) ) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'ReindexStatus' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[ReindexStatus] ([id] int identity(1, 1), [TrackReference] int, [FILEPATH] varchar(255), [STATUS] int, CONSTRAINT [PK_ReindexStatus] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_TrackReference' WHERE SO.[name] = 'ReindexStatus' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_TrackReference] ON [dbo].[ReindexStatus] ([TrackReference] ASC) INCLUDE ([STATUS], [FILEPATH]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[syscolumns] SC ON SC.[id] = SO.[object_id] AND SC.[name] = 'Publish' WHERE SO.[name] = 'CaseContacts' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[CaseContacts] ADD [PUBLISH] CHAR(1) NULL' EXEC (@COMMAND) END GO --The PUBLISH COLUMN IS ACTUALLY USED BY ONE OF THE WEB APPLICATIONS. REMOVE BELOW AND REINSTATE ABOVE --IF EXISTS -- (SELECT * -- FROM SYS.[objects] SO -- INNER JOIN SYS.[syscolumns] SC -- ON SC.[id] = SO.[object_id] -- AND SC.[name] = 'Publish' -- WHERE SO.[name] = 'CaseContacts' -- AND SO.[type] = 'U') --BEGIN -- DECLARE @COMMAND VARCHAR(MAX) -- SET @COMMAND = ' --UPDATE CCT -- SET CCT.[Publish] = NULL -- FROM [dbo].[CaseContacts] CCT' -- EXEC (@COMMAND) -- SET @COMMAND = ' --ALTER TABLE -- [dbo].[CaseContacts] -- DROP COLUMN [Publish]' -- EXEC (@COMMAND) --END --GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'MessageHashXRef' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[MessageHashXRef] ([id] int identity(1, 1), [Hash] varchar(32), [Sent] datetime, [TrackReference] int, CONSTRAINT [PK_MessageHashXRef] PRIMARY KEY CLUSTERED ([id] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_TrackReference' WHERE SO.[name] = 'MessageHashXRef' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_TrackReference] ON [dbo].[MessageHashXRef] ([TrackReference] ASC) INCLUDE ([Hash], [Sent]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_HashSent' WHERE SO.[name] = 'MessageHashXRef' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_HashSent] ON [dbo].[MessageHashXRef] ([Hash] ASC, [Sent] ASC) INCLUDE ([TrackReference]) ON [PRIMARY] END GO /************************************************************************************ * * Changes for "Closed" tables - start * ************************************************************************************/ /***************************************** * * [dbo].[matters] / start * *****************************************/ IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[syscolumns] SC ON SC.[id] = SO.[object_id] AND SC.[name] = 'Closed' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' ALTER TABLE [dbo].[matters] ADD [Closed] VARCHAR(1) DEFAULT ''N'' NOT NULL' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[syscolumns] SC ON SC.[id] = SO.[object_id] AND SC.[name] = 'CloseDate' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' ALTER TABLE [dbo].[matters] ADD [CloseDate] datetime NULL' EXEC (@COMMAND) END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'CompBillingMatters' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'CompBillingMatters' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[CompBillingMatters] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'CompBillingMatters' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [CompBillingMatters] ON [dbo].[matters] ([CompBillingMatter] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyBranch' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyBranch' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyBranch] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyBranch' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyBranch] ON [dbo].[matters] ([Branch] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyClientMatter' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyClientMatter' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyClientMatter] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyClientMatter' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyClientMatter] ON [dbo].[matters] ([ClientCode] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyDept' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyDept' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyDept] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyDept' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyDept] ON [dbo].[matters] ([Dept] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFee' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFee' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyFee] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFee' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyFee] ON [dbo].[matters] ([FECode] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFePCode' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFePCode' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyFePCode] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFePCode' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyFePCode] ON [dbo].[matters] ([PFECode] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFileColor' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFileColor' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyFileColor] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFileColor' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyFileColor] ON [dbo].[matters] ([FileColour] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFileNumber' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFileNumber' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyFileNumber] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFileNumber' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyFileNumber] ON [dbo].[matters] ([FileNum] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyMatterInprogress' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyMatterInprogress' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyMatterInprogress] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyMatterInprogress' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyMatterInprogress] ON [dbo].[matters] ([PCODE] ASC) INCLUDE([Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyOldMatter' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyOldMatter' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyOldMatter] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyOldMatter' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyOldMatter] ON [dbo].[matters] ([OldRef] ASC) INCLUDE([Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser1' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser1' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyUser1] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser1' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyUser1] ON [dbo].[matters] ([User1] ASC) INCLUDE([Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser2' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser2' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyUser2] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser2' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyUser2] ON [dbo].[matters] ([User2] ASC) INCLUDE([Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser3' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser3' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyUser3] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyUser3' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyUser3] ON [dbo].[matters] ([User3] ASC) INCLUDE([Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyWorkType' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyWorkType' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyWorkType] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyWorkType' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyWorkType] ON [dbo].[matters] ([WType] ASC, [Code] ASC) INCLUDE([Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_Matters_On_Code_Permissions_ClientCode' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_Matters_On_Code_Permissions_ClientCode' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KYNET_index_Matters_On_Code_Permissions_ClientCode] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_Matters_On_Code_Permissions_ClientCode' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KYNET_index_Matters_On_Code_Permissions_ClientCode] ON [dbo].[matters] ([Code] ASC, [Permissions] ASC, [ClientCode] ASC) INCLUDE([Description], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCode' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCode' where SO.[name] = 'matters' and SO.[type] = 'U' and SC.[name] = 'Closed') BEGIN DROP INDEX [dbo].[matters].[KeyCode] END END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCode' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyCode] ON [dbo].[matters] ([Code] ASC) INCLUDE([Description], [Closed], [CloseDate]) ON [PRIMARY] END GO IF NOT EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyClosed' where SO.[name] = 'matters' and SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyClosed] ON [dbo].[matters] ([Closed] ASC, [Code] ASC) INCLUDE([Description], [CloseDate]) ON [PRIMARY] END GO /***************************************** * * [dbo].[matters] / end * *****************************************/ /************************************************************************************ * * make sure that [dbo].[diary]'s definition is completely up to date - START * ************************************************************************************/ IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ORGINALACTIONID' AND SC.[is_nullable] = 0 WHERE SO.[name] = 'diary') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixDiaryDefinition') END GO IF NOT EXISTS (SELECT SO2.* FROM sys.[objects] SO INNER JOIN [sys].[sysconstraints] SC INNER JOIN [sys].[objects] SO2 ON SO2.[object_id] = SC.[constid] ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'diary' AND SO.[type] = 'U' AND SO2.[name] = 'DF_diary_DELEGATIONSTATUS') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixDiaryDefinition') END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_diary_On_ActionID_CaseCode' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryDefinition') BEGIN SET @COMMAND = 'DROP INDEX [dbo].[diary].[KYNET_index_diary_On_ActionID_CaseCode]' EXEC (@COMMAND) END END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryDefinition') BEGIN SET @COMMAND = 'DROP INDEX [dbo].[diary].[KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID]' EXEC (@COMMAND) END END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyOrginalId' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryDefinition') BEGIN SET @COMMAND = 'DROP INDEX [dbo].[diary].[KeyOrginalId]' EXEC (@COMMAND) END END GO IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ORGINALACTIONID' AND SC.[is_nullable] = 0 WHERE SO.[name] = 'diary') BEGIN DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT SO2.* FROM sys.[objects] SO INNER JOIN [sys].[sysconstraints] SC INNER JOIN [sys].[objects] SO2 ON SO2.[object_id] = SC.[constid] ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'diary' AND SO.[type] = 'U' AND SO2.[name] = 'DF_diary_ORGINALACTIONID') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[diary] DROP CONSTRAINT [DF_diary_ORGINALACTIONID]' EXEC (@COMMAND) END SET @COMMAND = 'UPDATE DIA SET DIA.[ORGINALACTIONID] = 0 FROM [dbo].[diary] DIA WHERE DIA.[ORGINALACTIONID] IS NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ALTER COLUMN [ORGINALACTIONID] decimal(15, 0) NOT NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD CONSTRAINT [DF_diary_ORGINALACTIONID] DEFAULT (0) FOR [ORGINALACTIONID]' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT SO2.* FROM sys.[objects] SO INNER JOIN [sys].[sysconstraints] SC INNER JOIN [sys].[objects] SO2 ON SO2.[object_id] = SC.[constid] ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'diary' AND SO.[type] = 'U' AND SO2.[name] = 'DF_diary_DELEGATIONSTATUS') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE DIA SET DIA.[DELEGATIONSTATUS] = 0 FROM [dbo].[diary] DIA WHERE DIA.[DELEGATIONSTATUS] IS NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ALTER COLUMN [DELEGATIONSTATUS] decimal(5, 2) NOT NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD CONSTRAINT [DF_diary_DELEGATIONSTATUS] DEFAULT (0) FOR [DELEGATIONSTATUS]' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BILLDESCRIPTION' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ALTER COLUMN [BILLDESCRIPTION] VARCHAR(150) NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE DIA SET DIA.[BILLDESCRIPTION] = RTRIM(DIA.[BILLDESCRIPTION]) FROM [dbo].[diary] DIA WHERE DIA.[BILLDESCRIPTION] IS NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'EMAILADDRESS' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ALTER COLUMN [EMAILADDRESS] VARCHAR(150) NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE DIA SET DIA.[EMAILADDRESS] = RTRIM(DIA.[EMAILADDRESS]) FROM [dbo].[diary] DIA WHERE DIA.[EMAILADDRESS] IS NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ADDRESSTO' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE TABLE [Keyhouse_TS].[dbo].[DiaryFix] ([id] INT IDENTITY(1, 1), [ActionID] INT, [FIX] VARCHAR(2000), CONSTRAINT [PK_DiaryFix] PRIMARY KEY CLUSTERED ([ActionID] ASC)) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = 'DELETE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) SET @COMMAND = 'INSERT INTO [Keyhouse_TS].[dbo].[DiaryFix] ([ActionID], [FIX]) SELECT DIA.[ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(2000), DIA.[ADDRESSTO]), '''')) FROM [dbo].[diary] DIA' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] DROP COLUMN [ADDRESSTO]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [ADDRESSTO] VARCHAR(2000)' EXEC (@COMMAND) WHILE EXISTS (SELECT * FROM [Keyhouse_TS].[dbo].[DiaryFix]) BEGIN SET @COMMAND = 'UPDATE DIA SET DIA.[ADDRESSTO] = DF.[FIX] FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) SET @COMMAND = 'DELETE DIF FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [Keyhouse_TS].[dbo].[DiaryFix] DIF ON DIF.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) END SET @COMMAND = 'DROP TABLE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CCTo' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE TABLE [Keyhouse_TS].[dbo].[DiaryFix] ([id] INT IDENTITY(1, 1), [ActionID] INT, [FIX] VARCHAR(2000), CONSTRAINT [PK_DiaryFix] PRIMARY KEY CLUSTERED ([ActionID] ASC)) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = 'DELETE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) SET @COMMAND = 'INSERT INTO [Keyhouse_TS].[dbo].[DiaryFix] ([ActionID], [FIX]) SELECT DIA.[ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(2000), DIA.[CCTo]), '''')) FROM [dbo].[diary] DIA' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] DROP COLUMN [CCTo]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [CCTo] VARCHAR(2000)' EXEC (@COMMAND) WHILE EXISTS (SELECT * FROM [Keyhouse_TS].[dbo].[DiaryFix]) BEGIN SET @COMMAND = 'UPDATE DIA SET DIA.[CCTo] = DF.[FIX] FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) SET @COMMAND = 'DELETE DIF FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [Keyhouse_TS].[dbo].[DiaryFix] DIF ON DIF.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) END SET @COMMAND = 'DROP TABLE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BCCTo' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE TABLE [Keyhouse_TS].[dbo].[DiaryFix] ([id] INT IDENTITY(1, 1), [ActionID] INT, [FIX] VARCHAR(2000), CONSTRAINT [PK_DiaryFix] PRIMARY KEY CLUSTERED ([ActionID] ASC)) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = 'DELETE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) SET @COMMAND = 'INSERT INTO [Keyhouse_TS].[dbo].[DiaryFix] ([ActionID], [FIX]) SELECT DIA.[ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(2000), DIA.[BCCTo]), '''')) FROM [dbo].[diary] DIA' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] DROP COLUMN [BCCTo]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [BCCTo] VARCHAR(2000)' EXEC (@COMMAND) WHILE EXISTS (SELECT * FROM [Keyhouse_TS].[dbo].[DiaryFix]) BEGIN SET @COMMAND = 'UPDATE DIA SET DIA.[BCCTo] = DF.[FIX] FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) SET @COMMAND = 'DELETE DIF FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [Keyhouse_TS].[dbo].[DiaryFix] DIF ON DIF.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) END SET @COMMAND = 'DROP TABLE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Location' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE TABLE [Keyhouse_TS].[dbo].[DiaryFix] ([id] INT IDENTITY(1, 1), [ActionID] INT, [FIX] VARCHAR(50), CONSTRAINT [PK_DiaryFix] PRIMARY KEY CLUSTERED ([ActionID] ASC)) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = 'DELETE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) SET @COMMAND = 'INSERT INTO [Keyhouse_TS].[dbo].[DiaryFix] ([ActionID], [FIX]) SELECT DIA.[ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(50), DIA.[Location]), '''')) FROM [dbo].[diary] DIA' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ALTER COLUMN [Location] VARCHAR(50)' EXEC (@COMMAND) WHILE EXISTS (SELECT * FROM [Keyhouse_TS].[dbo].[DiaryFix]) BEGIN SET @COMMAND = 'UPDATE DIA SET DIA.[Location] = DF.[FIX] FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) SET @COMMAND = 'DELETE DIF FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [Keyhouse_TS].[dbo].[DiaryFix] DIF ON DIF.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) END SET @COMMAND = 'DROP TABLE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'HearingType' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE TABLE [Keyhouse_TS].[dbo].[DiaryFix] ([id] INT IDENTITY(1, 1), [ActionID] INT, [FIX] VARCHAR(50), CONSTRAINT [PK_DiaryFix] PRIMARY KEY CLUSTERED ([ActionID] ASC)) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = 'DELETE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) SET @COMMAND = 'INSERT INTO [Keyhouse_TS].[dbo].[DiaryFix] ([ActionID], [FIX]) SELECT DIA.[ActionID], RTRIM(ISNULL(CONVERT(VARCHAR(50), DIA.[HearingType]), '''')) FROM [dbo].[diary] DIA' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[diary] ALTER COLUMN [HearingType] VARCHAR(50)' EXEC (@COMMAND) WHILE EXISTS (SELECT * FROM [Keyhouse_TS].[dbo].[DiaryFix]) BEGIN SET @COMMAND = 'UPDATE DIA SET DIA.[HearingType] = DF.[FIX] FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [dbo].[Diary] DIA ON DIA.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) SET @COMMAND = 'DELETE DIF FROM ( SELECT TOP 1000 * FROM [Keyhouse_TS].[dbo].[DiaryFix] ORDER BY [id]) DF INNER JOIN [Keyhouse_TS].[dbo].[DiaryFix] DIF ON DIF.[ActionID] = DF.[ActionID]' EXEC (@COMMAND) END SET @COMMAND = 'DROP TABLE [Keyhouse_TS].[dbo].[DiaryFix]' EXEC (@COMMAND) END GO --IF NOT EXISTS -- (SELECT * -- FROM SYS.[objects] SO -- INNER JOIN SYS.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KYNET_index_diary_On_ActionID_CaseCode' -- WHERE SO.[name] = 'diary' -- AND SO.[type] = 'U') --BEGIN -- DECLARE @COMMAND VARCHAR(MAX) -- SET @COMMAND = ' CREATE NONCLUSTERED INDEX -- [KYNET_index_diary_On_ActionID_CaseCode] -- ON [dbo].[diary] -- ([ACTIONID] ASC, -- [CASECODE] ASC) -- INCLUDE ([DATE], -- [STATUS], -- [ACTIONTYPE], -- [PROCESSTYPE], -- [FNCODE], -- [IMAGENO], -- [PRIORITY], -- [HIGHLIGHTED], -- [PROCESSSTATUS], -- [WORKPROCESS], -- [DELEGATIONSTATUS]) -- ON [PRIMARY]' --EXEC (@COMMAND) --END --GO --IF NOT EXISTS -- (SELECT * -- FROM SYS.[objects] SO -- INNER JOIN SYS.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID' -- WHERE SO.[name] = 'diary' -- AND SO.[type] = 'U') --BEGIN -- DECLARE @COMMAND VARCHAR(MAX) -- SET @COMMAND = 'CREATE NONCLUSTERED INDEX -- [KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [DYSTARTTIME] DESC, -- [ACTIONID] DESC) -- INCLUDE ([ORGINALACTIONID]) -- ON [PRIMARY]' --EXEC (@COMMAND) --END --GO --IF NOT EXISTS -- (SELECT * -- FROM SYS.[objects] SO -- INNER JOIN SYS.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyOrginalId' -- WHERE SO.[name] = 'diary' -- AND SO.[type] = 'U') --BEGIN -- DECLARE @COMMAND VARCHAR(MAX) -- SET @COMMAND = 'CREATE NONCLUSTERED INDEX -- [KeyOrginalId] -- ON [dbo].[diary] -- ([ORGINALACTIONID] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY]' --EXEC (@COMMAND) --END --GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'ClientContactID' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [ClientContactID] int' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'ContactCategory' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [ContactCategory] int' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Campaign' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [Campaign] int' EXEC (@COMMAND) END GO --IF NOT EXISTS -- (SELECT * -- FROM sys.objects SO -- inner join sys.indexes SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyCampaign' -- WHERE SO.[name] = 'diary' -- AND SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyCampaign] -- ON [dbo].[diary] -- ([Campaign] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] --END --GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ACTIONID' AND SC.[system_type_id] <> 56 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixDiaryFully') END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ACTIONID' AND SC.[system_type_id] <> 56 WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixDiaryFully') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN EXEC('CREATE TABLE [Keyhouse_TS].[dbo].[diarycopy] ([ACTIONID] [int] NOT NULL, [CASECODE] [varchar](20) NOT NULL, [PRIORITY] [varchar](1) NULL, [HIGHLIGHTED] [varchar](1) NULL, [PUBLISH] [varchar](1) NULL, [DATE] [datetime] NULL, [STATUS] [smallint] NULL, [ACTIONCODE] [varchar](15) NULL, [ACTIONSTATUS] [varchar](3) NULL, [ACTIONTYPE] [varchar](1) NULL, [PROCESSTYPE] [varchar](1) NULL, [FNCODE] [varchar](10) NULL, [TEAMCODE] [varchar](10) NULL, [TEXT1] [varchar](max) NULL, [TEXT2] [varchar](max) NULL, [DELEGATEDFNR] [varchar](10) NULL, [DELEGATEDDATE] [datetime] NULL, [DELEGATEDBACKDATE] [datetime] NULL, [DEFERRED] [varchar](3) NULL, [DUEDATE] [datetime] NULL, [IMAGENO] [int] NULL, [DYSTARTTIME] [varchar](10) NULL, [DYENDTIME] [varchar](10) NULL, [DURATION] [smallint] NULL, [ORGINALACTIONID] [int] NOT NULL CONSTRAINT [DF_diarycopy_ORGINALACTIONID] DEFAULT (0), [MILESTEONETYPE] [varchar](12) NULL, [ATTACHMENTS] [varchar](1) NULL, [PROCESSSTATUS] [smallint] NULL, [WORKPROCESS] [smallint] NULL, [BILLABLE] [int] NULL, [BILLDESCRIPTION] [varchar](150) NULL, [EMAILADDRESS] [varchar](150) NULL, [EMAIL] [varchar](1) NULL, [SUBJECT] [varchar](500) NULL, [DELEGATIONSTATUS] [int] NULL CONSTRAINT [DF_diarycopy_DELEGATIONSTATUS] DEFAULT (0), [DRAFTBILLNO] [int] NULL, [CHEQUEREQNO] [int] NULL, [TxmSent] [bit] NULL CONSTRAINT [DF_diarycopy_TxmSent] DEFAULT (0), [Location] [varchar](50) NULL, [HearingType] [varchar](50) NULL, [ForCopy] [varchar](1) NULL, [TxmDate] [datetime] NULL, [TxmSeqNo] [int] NULL, [DisplayText] [nvarchar](200) NULL, [Flag] [tinyint] NULL, [ADDRESSTO] [varchar](2000) NULL, [CCTo] [varchar](2000) NULL, [BCCTo] [varchar](2000) NULL, [ClientContactID] [int] NULL, [ContactCategory] [int] NULL, [Campaign] [int] NULL, CONSTRAINT [PK__diarycopy] PRIMARY KEY CLUSTERED ([ACTIONID] ASC)) ON [PRIMARY]') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN INSERT INTO [Keyhouse_TS].[dbo].[diarycopy] ([ACTIONID], [CASECODE], [PRIORITY], [HIGHLIGHTED], [PUBLISH], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [IMAGENO], [DYSTARTTIME], [DYENDTIME], [DURATION], [ORGINALACTIONID], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag], [ADDRESSTO], [CCTo], [BCCTo], [ClientContactID], [ContactCategory], [Campaign]) SELECT [ACTIONID], [CASECODE], [PRIORITY], [HIGHLIGHTED], [PUBLISH], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [IMAGENO], [DYSTARTTIME], [DYENDTIME], [DURATION], [ORGINALACTIONID], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [EMAIL], RTRIM(CONVERT(VARCHAR(500), [SUBJECT])), [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag], RTRIM(CONVERT(VARCHAR(2000), [ADDRESSTO])), RTRIM(CONVERT(VARCHAR(2000), [CCTo])), RTRIM(CONVERT(VARCHAR(2000), [BCCTo])), [ClientContactID], [ContactCategory], [Campaign] FROM [dbo].[diary] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN DROP TABLE [dbo].[diary] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN CREATE TABLE [dbo].[diary] ([ACTIONID] [int] NOT NULL, [CASECODE] [varchar](20) NOT NULL, [PRIORITY] [varchar](1) NULL, [HIGHLIGHTED] [varchar](1) NULL, [PUBLISH] [varchar](1) NULL, [DATE] [datetime] NULL, [STATUS] [smallint] NULL, [ACTIONCODE] [varchar](15) NULL, [ACTIONSTATUS] [varchar](3) NULL, [ACTIONTYPE] [varchar](1) NULL, [PROCESSTYPE] [varchar](1) NULL, [FNCODE] [varchar](10) NULL, [TEAMCODE] [varchar](10) NULL, [TEXT1] [varchar](max) NULL, [TEXT2] [varchar](max) NULL, [DELEGATEDFNR] [varchar](10) NULL, [DELEGATEDDATE] [datetime] NULL, [DELEGATEDBACKDATE] [datetime] NULL, [DEFERRED] [varchar](3) NULL, [DUEDATE] [datetime] NULL, [IMAGENO] [int] NULL, [DYSTARTTIME] [varchar](10) NULL, [DYENDTIME] [varchar](10) NULL, [DURATION] [smallint] NULL, [ORGINALACTIONID] [int] NOT NULL CONSTRAINT [DF_diary_ORGINALACTIONID] DEFAULT (0), [MILESTEONETYPE] [varchar](12) NULL, [ATTACHMENTS] [varchar](1) NULL, [PROCESSSTATUS] [smallint] NULL, [WORKPROCESS] [smallint] NULL, [BILLABLE] [int] NULL, [BILLDESCRIPTION] [varchar](150) NULL, [EMAILADDRESS] [varchar](150) NULL, [EMAIL] [varchar](1) NULL, [SUBJECT] [varchar](500) NULL, [DELEGATIONSTATUS] [int] NULL CONSTRAINT [DF_diary_DELEGATIONSTATUS] DEFAULT (0), [DRAFTBILLNO] [int] NULL, [CHEQUEREQNO] [int] NULL, [TxmSent] [bit] NULL CONSTRAINT [DF_diary_TxmSent] DEFAULT (0), [Location] [varchar](50) NULL, [HearingType] [varchar](50) NULL, [ForCopy] [varchar](1) NULL, [TxmDate] [datetime] NULL, [TxmSeqNo] [int] NULL, [DisplayText] [nvarchar](200) NULL, [Flag] [tinyint] NULL, [ADDRESSTO] [varchar](2000) NULL, [CCTo] [varchar](2000) NULL, [BCCTo] [varchar](2000) NULL, [ClientContactID] [int] NULL, [ContactCategory] [int] NULL, [Campaign] [int] NULL, CONSTRAINT [PK__diary] PRIMARY KEY CLUSTERED ([ACTIONID] ASC)) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN INSERT INTO [dbo].[diary] ([ACTIONID], [CASECODE], [PRIORITY], [HIGHLIGHTED], [PUBLISH], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [IMAGENO], [DYSTARTTIME], [DYENDTIME], [DURATION], [ORGINALACTIONID], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag], [ADDRESSTO], [CCTo], [BCCTo], [ClientContactID], [ContactCategory], [Campaign]) SELECT [ACTIONID], [CASECODE], [PRIORITY], [HIGHLIGHTED], [PUBLISH], [DATE], [STATUS], [ACTIONCODE], [ACTIONSTATUS], [ACTIONTYPE], [PROCESSTYPE], [FNCODE], [TEAMCODE], [TEXT1], [TEXT2], [DELEGATEDFNR], [DELEGATEDDATE], [DELEGATEDBACKDATE], [DEFERRED], [DUEDATE], [IMAGENO], [DYSTARTTIME], [DYENDTIME], [DURATION], [ORGINALACTIONID], [MILESTEONETYPE], [ATTACHMENTS], [PROCESSSTATUS], [WORKPROCESS], [BILLABLE], [BILLDESCRIPTION], [EMAILADDRESS], [EMAIL], [SUBJECT], [DELEGATIONSTATUS], [DRAFTBILLNO], [CHEQUEREQNO], [TxmSent], [Location], [HearingType], [ForCopy], [TxmDate], [TxmSeqNo], [DisplayText], [Flag], [ADDRESSTO], [CCTo], [BCCTo], [ClientContactID], [ContactCategory], [Campaign] FROM [Keyhouse_TS].[dbo].[diarycopy] END GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [IDX_DiaryCasePublish] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX -- [IDX_DiaryCasePublish] -- ON [dbo].[diary] -- ([CASECODE] ASC) -- INCLUDE ([PUBLISH], -- [STATUS], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [IX_DraftNo] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [IX_DraftNo] ON [dbo].[diary] --( -- [DRAFTBILLNO] ASC --) ON [PRIMARY] --END --GO --/****** Object: Index [KeyAction] Script Date: 22/08/2014 10:03:58 ******/ --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --CREATE NONCLUSTERED INDEX [KeyAction] ON [dbo].[diary] --( -- [ACTIONCODE] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --/****** Object: Index [KeyCampaign] Script Date: 22/08/2014 10:03:58 ******/ --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --CREATE NONCLUSTERED INDEX [KeyCampaign] ON [dbo].[diary] --( -- [Campaign] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyCase] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyCase] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONCODE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyCaseDes] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyCaseDes] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyCaseDes2] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyCaseDes2] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) --INCLUDE ( [PUBLISH], -- [STATUS], -- [HIGHLIGHTED]) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyCaseStatus] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyCaseStatus] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyCaseStatusTime] Script Date: 22/08/2014 10:03:58 ******/ --CREATE UNIQUE NONCLUSTERED INDEX [KeyCaseStatusTime] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [DYSTARTTIME] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyEmailDates] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyEmailDates] ON [dbo].[diary] --( -- [EMAIL] ASC, -- [TxmDate] ASC, -- [DATE] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyEmailDates2] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyEmailDates2] ON [dbo].[diary] --( -- [EMAIL] ASC, -- [DATE] ASC, -- [TxmDate] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyFeEarner] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyFeEarner] ON [dbo].[diary] --( -- [FNCODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyFeProcess] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyFeProcess] ON [dbo].[diary] --( -- [FNCODE] ASC, -- [PROCESSSTATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyFeStatus] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyFeStatus] ON [dbo].[diary] --( -- [FNCODE] ASC, -- [STATUS] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyFnCase] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyFnCase] ON [dbo].[diary] --( -- [FNCODE] ASC, -- [STATUS] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyHighLighted] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyHighLighted] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [HIGHLIGHTED] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyOrginalId] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyOrginalId] ON [dbo].[diary] --( -- [ORGINALACTIONID] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyProcess] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyProcess] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [PROCESSSTATUS] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyStatus] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyStatus] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [STATUS] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyTeam] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyTeam] ON [dbo].[diary] --( -- [TEAMCODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyTeamCase] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyTeamCase] ON [dbo].[diary] --( -- [TEAMCODE] ASC, -- [STATUS] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KeyTypeCase] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KeyTypeCase] ON [dbo].[diary] --( -- [ACTIONTYPE] ASC, -- [DATE] DESC, -- [ACTIONID] DESC --) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KYNET_index_diary_On_ActionID_CaseCode] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KYNET_index_diary_On_ActionID_CaseCode] ON [dbo].[diary] --( -- [ACTIONID] ASC, -- [CASECODE] ASC --) --INCLUDE ( [DATE], -- [STATUS], -- [ACTIONTYPE], -- [PROCESSTYPE], -- [FNCODE], -- [IMAGENO], -- [PRIORITY], -- [HIGHLIGHTED], -- [PROCESSSTATUS], -- [WORKPROCESS], -- [DELEGATIONSTATUS]) ON [PRIMARY] --END --GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN --/****** Object: Index [KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID] Script Date: 22/08/2014 10:03:58 ******/ --CREATE NONCLUSTERED INDEX [KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID] ON [dbo].[diary] --( -- [CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [DYSTARTTIME] DESC, -- [ACTIONID] DESC --) --INCLUDE ( [ORGINALACTIONID]) ON [PRIMARY] --END --GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = '/****** Object: Trigger [dbo].[ky_NETTRInsertDisplayText] Script Date: 22/08/2014 10:03:58 ******/ CREATE TRIGGER [dbo].[ky_NETTRInsertDisplayText] ON [dbo].[diary] AFTER INSERT AS BEGIN IF ((SELECT TRIGGER_NESTLEVEL()) <2) BEGIN UPDATE DIA SET DIA.[DisplayText] = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), DIA.[TEXT1]), ''''), 200) FROM inserted INS INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = INS.[ACTIONID] AND DIA.[DisplayText] IS NULL END END' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = '/****** Object: Trigger [dbo].[ky_NETTRUpdateDisplayText] Script Date: 22/08/2014 10:03:58 ******/ CREATE TRIGGER [dbo].[ky_NETTRUpdateDisplayText] ON [dbo].[diary] AFTER UPDATE AS IF ((SELECT TRIGGER_NESTLEVEL()) <2) BEGIN DECLARE @T1 VARCHAR(MAX) DECLARE @T2 VARCHAR(MAX) SELECT @T1 = [dbo].[ky_RemoveSpuriousWhitespace2](ISNULL(CONVERT(VARCHAR(MAX), DIA.[TEXT1]), ''''), 200), @T2 = DIA.[DisplayText] FROM inserted INS INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = INS.[ACTIONID] IF (@T1 <> @T2) BEGIN UPDATE DIA SET DIA.[DisplayText] = @T1 FROM inserted INS INNER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = INS.[ACTIONID] END END' EXEC (@COMMAND) END GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryFully') --BEGIN -- IF EXISTS (SELECT * FROM [dbo].[diary]) -- BEGIN -- IF EXISTS (SELECT * FROM [Keyhouse_TS].SYS.[objects] SO WHERE SO.[name] = 'diarycopy' AND SO.[type] = 'U') -- BEGIN -- DROP TABLE [Keyhouse_TS].[dbo].[diarycopy] -- END -- END --END --GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_ID] AND SI.[name] = 'KeyCaseDes' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyCaseDes] END GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCase' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCase' where SO.[name] = 'diary' and SO.[type] = 'U' and SC.[name] = 'HIGHLIGHTED') BEGIN DROP INDEX [dbo].[diary].[KeyCase] END END GO --IF NOT EXISTS -- (select * -- from sys.[objects] SO -- inner join sys.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyCase' -- where SO.[name] = 'diary' -- and SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyCase] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [DATE] ASC, -- [ACTIONCODE] ASC, -- [ACTIONID] ASC) -- INCLUDE ([PUBLISH], -- [STATUS], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyAction' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyAction' where SO.[name] = 'diary' and SO.[type] = 'U' and SC.[name] = 'HIGHLIGHTED') BEGIN DROP INDEX [dbo].[diary].[KeyAction] END END GO --IF NOT EXISTS -- (select * -- from sys.[objects] SO -- inner join sys.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyAction' -- where SO.[name] = 'diary' -- and SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyAction] -- ON [dbo].[diary] -- ([ACTIONCODE] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- INCLUDE ([PUBLISH], -- [STATUS], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseStatus' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseStatus' where SO.[name] = 'diary' and SO.[type] = 'U' and SC.[name] = 'HIGHLIGHTED') BEGIN DROP INDEX [dbo].[diary].[KeyCaseStatus] END END GO --IF NOT EXISTS -- (select * -- from sys.[objects] SO -- inner join sys.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyCaseStatus' -- where SO.[name] = 'diary' -- and SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyCaseStatus] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- INCLUDE ([PUBLISH], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseStatusTime' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseStatusTime' where SO.[name] = 'diary' and SO.[type] = 'U' and SC.[name] = 'HIGHLIGHTED') BEGIN DROP INDEX [dbo].[diary].[KeyCaseStatusTime] END END GO --IF NOT EXISTS -- (select * -- from sys.[objects] SO -- inner join sys.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyCaseStatusTime' -- where SO.[name] = 'diary' -- and SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyCaseStatusTime] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [DYSTARTTIME] DESC, -- [ACTIONID] DESC) -- INCLUDE ([PUBLISH], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFeEarner' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFeEarner' where SO.[name] = 'diary' and SO.[type] = 'U' and SC.[name] = 'HIGHLIGHTED') BEGIN DROP INDEX [dbo].[diary].[KeyFeEarner] END END GO --IF NOT EXISTS -- (select * -- from sys.[objects] SO -- inner join sys.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyFeEarner' -- where SO.[name] = 'diary' -- and SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyFeEarner] -- ON [dbo].[diary] -- ([FNCODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- INCLUDE ([PUBLISH], -- [STATUS], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFnCase' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN IF NOT EXISTS (select SC.[name] from sys.[objects] SO inner join sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFnCase' where SO.[name] = 'diary' and SO.[type] = 'U' and SC.[name] = 'HIGHLIGHTED') BEGIN DROP INDEX [dbo].[diary].[KeyFnCase] END END GO --IF NOT EXISTS -- (select * -- from sys.[objects] SO -- inner join sys.[indexes] SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'KeyFnCase' -- where SO.[name] = 'diary' -- and SO.[type] = 'U') --BEGIN --CREATE NONCLUSTERED INDEX -- [KeyFnCase] -- ON [dbo].[diary] -- ([FNCODE] ASC, -- [STATUS] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- INCLUDE ([PUBLISH], -- [HIGHLIGHTED]) -- ON [PRIMARY] --END --GO /************************************************************************************ * * make sure that [dbo].[diary]'s definition is completely up to date - END * ************************************************************************************/ /************************************************************************************ * * Changes for "Closed" tables - end * ************************************************************************************/ /************************************************* * * FIX MATTERS TABLE - START * *************************************************/ IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'comment' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixMattersFully') END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMatters' AND SO.[type] = 'V') BEGIN SET @COMMAND = 'DROP VIEW [dbo].[OpenClosedMatters]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMatters' AND SO.[type] = 'V') BEGIN SET @COMMAND = 'DROP VIEW [dbo].[OpenClosedMatters]' EXEC (@COMMAND) END IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatters' AND SO.[type] = 'TF') BEGIN SET @COMMAND = 'DROP FUNCTION [dbo].[ky_NETOpenClosedMatters]' EXEC (@COMMAND) END SET ANSI_PADDING ON UPDATE MAT SET MAT.[EstFee] = ISNULL(MAT.[EstFee], 0), MAT.[OutlayBud] = ISNULL(MAT.[OutlayBud], 0), MAT.[DebtBal] = ISNULL(MAT.[DebtBal], 0), MAT.[OutlayBal] = ISNULL(MAT.[OutlayBal], 0), MAT.[ClientBal] = ISNULL(MAT.[ClientBal], 0), MAT.[ClientCurBal] = ISNULL(MAT.[ClientCurBal], 0), MAT.[ClientDepBal] = ISNULL(MAT.[ClientDepBal], 0), MAT.[DebtBalFwd] = ISNULL(MAT.[DebtBalFwd], 0), MAT.[OutlayBalFwd] = ISNULL(MAT.[OutlayBalFwd], 0), MAT.[ClientBalFwd] = ISNULL(MAT.[ClientBalFwd], 0), MAT.[ClientCurBalFwd] = ISNULL(MAT.[ClientCurBalFwd], 0), MAT.[ClientDepBalFwd] = ISNULL(MAT.[ClientDepBalFwd], 0), MAT.[PendingBal] = ISNULL(MAT.[PendingBal], 0), MAT.[ClientMin] = ISNULL(MAT.[ClientMin], 0), MAT.[FNL_Fees] = ISNULL(MAT.[FNL_Fees], 0), MAT.[FNL_Outlay] = ISNULL(MAT.[FNL_Outlay], 0), MAT.[FNL_VAT] = ISNULL(MAT.[FNL_VAT], 0), MAT.[FNL_Total] = ISNULL(MAT.[FNL_Total], 0), MAT.[TimeBal] = ISNULL(MAT.[TimeBal], 0), MAT.[ChargeBal] = ISNULL(MAT.[ChargeBal], 0), MAT.[CurDebtBal] = ISNULL(MAT.[CurDebtBal], 0), MAT.[CurOutlayBal] = ISNULL(MAT.[CurOutlayBal], 0), MAT.[CurClientBal] = ISNULL(MAT.[CurClientBal], 0), MAT.[CurClientCBal] = ISNULL(MAT.[CurClientCBal], 0), MAT.[CurClientDBal] = ISNULL(MAT.[CurClientDBal], 0), MAT.[CurDebtBalFwd] = ISNULL(MAT.[CurDebtBalFwd], 0), MAT.[CurOutlayBalFwd] = ISNULL(MAT.[CurOutlayBalFwd], 0), MAT.[CurClientBalFwd] = ISNULL(MAT.[CurClientBalFwd], 0), MAT.[CurClientCBalFwd] = ISNULL(MAT.[CurClientCBalFwd], 0), MAT.[CurClientDBalFwd] = ISNULL(MAT.[CurClientDBalFwd], 0), MAT.[CurPendingBal] = ISNULL(MAT.[CurPendingBal], 0), MAT.[Unallocated] = ISNULL(MAT.[Unallocated], 0), MAT.[CompOutlayLimit] = ISNULL(MAT.[CompOutlayLimit], 0), MAT.[CompFeesLimit] = ISNULL(MAT.[CompFeesLimit], 0), MAT.[CompTotalLimit] = ISNULL(MAT.[CompTotalLimit], 0), MAT.[OriginalDebt] = ISNULL(MAT.[OriginalDebt], 0), MAT.[DebtCollected] = ISNULL(MAT.[DebtCollected], 0), MAT.[RecoverableCosts] = ISNULL(MAT.[RecoverableCosts], 0), MAT.[DebtInterest] = ISNULL(MAT.[DebtInterest], 0), MAT.[CollectingBalance] = ISNULL(MAT.[CollectingBalance], 0), MAT.[FixedFee] = ISNULL(MAT.[FixedFee], 'N'), MAT.[ShowCommentInAlarm] = ISNULL(MAT.[ShowCommentInAlarm], 'N'), MAT.[Closed] = ISNULL(MAT.[Closed], 'N'), MAT.[DEPT] = ISNULL(MAT.[DEPT], ''), MAT.[Description] = ISNULL(MAT.[Description], ''), MAT.[Permissions] = ISNULL(MAT.[Permissions], 0) FROM [dbo].[matters] MAT END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN EXEC('CREATE TABLE [Keyhouse_TS].[dbo].[matterscopy] ([Code] [char](11) NOT NULL, [ClientCode] [char](6) NOT NULL, [Matter] [char](4) NOT NULL, [Description] [varchar](200) DEFAULT('''') NOT NULL, [FECode] [varchar](10) NOT NULL, [Partner] [varchar](10) NULL, [Secretary] [varchar](10) NULL, [Dept] [char](3) NOT NULL, [Started] [datetime] NULL, [WType] [char](4) NOT NULL, [Branch] [char](1) NULL, [EstFee] [decimal](17, 2) DEFAULT(0) NOT NULL, [OutlayBud] [decimal](17, 2) DEFAULT(0) NOT NULL, [ExpBillD] [datetime] NULL, [ExpPayD] [datetime] NULL, [S13] [char](1) NULL, [Comment] [varchar](3000) NULL, [DebtBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [OutlayBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientCurBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientDepBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [DebtBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [OutlayBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientCurBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientDepBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [PendingBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientMin] [decimal](17, 2) DEFAULT(0) NOT NULL, [FileNum] [int] NULL, [ThirdPart] [varchar](6) NULL, [ThPartSol] [varchar](6) NULL, [Value] [decimal](17, 2) NULL, [Undertaking] [char](1) NULL, [LastAct] [datetime] NULL, [LastActType] [varchar](10) NULL, [LastActWho] [varchar](10) NULL, [StatuteLimits] [datetime] NULL, [Status] [varchar](6) NULL, [Section68] [char](1) NULL, [FNL_Date] [datetime] NULL, [FNL_Name] [varchar](40) NULL, [FNL_Address] [varchar](120) NULL, [FNL_Fees] [decimal](15, 2) DEFAULT(0) NOT NULL, [FNL_Outlay] [decimal](15, 2) DEFAULT(0) NOT NULL, [FNL_VAT] [decimal](15, 2) DEFAULT(0) NOT NULL, [FNL_Total] [decimal](15, 2) DEFAULT(0) NOT NULL, [OldRef] [varchar](12) NULL, [PCODE] [varchar](11) NULL, [PFECODE] [varchar](10) NULL, [User1] [varchar](20) NULL, [User2] [varchar](20) NULL, [User3] [varchar](20) NULL, [DepositName] [varchar](40) NULL, [DepositType] [char](4) NULL, [TimeBal] [decimal](13, 2) DEFAULT(0) NOT NULL, [ChargeBal] [decimal](13, 2) DEFAULT(0) NOT NULL, [YourRef] [varchar](40) NULL, [CurDebtBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurOutlayBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientCBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientDBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurDebtBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurOutlayBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientCBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientDBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurPendingBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [Unallocated] [decimal](13, 2) DEFAULT(0) NOT NULL, [Statements] [char](1) NULL, [ChargeLevel] [int] NULL, [FileColour] [char](3) NULL, [OpenInvoiceNo] [int] NULL, [Password] [varchar](20) NULL, [CompBillOnOff] [char](1) NULL, [CompFrequency] [char](1) NULL, [CompOutlayLimit] [decimal](13, 2) DEFAULT(0) NOT NULL, [CompFeesLimit] [decimal](13, 2) DEFAULT(0) NOT NULL, [CompTotalLimit] [decimal](13, 2) DEFAULT(0) NOT NULL, [CompBillingMatter] [varchar](20) NULL, [CompBilling] [char](1) NULL, [ClientName] [varchar](60) NULL, [ClientAddress] [varchar](120) NULL, [ClientSalutation] [varchar](40) NULL, [ChargeArrangement] [char](3) NULL, [Importance] [smallint] NULL, [OriginalDebt] [decimal](18, 2) DEFAULT(0) NOT NULL, [DebtCollected] [decimal](18, 2) DEFAULT(0) NOT NULL, [RecoverableCosts] [decimal](18, 2) DEFAULT(0) NOT NULL, [DebtInterest] [decimal](18, 2) DEFAULT(0) NOT NULL, [BillingMethod] [char](1) NULL, [CollectingBalance] [decimal](18, 2) DEFAULT(0) NOT NULL, [Publish] [char](1) NULL, [Permissions] [int] DEFAULT(0) NOT NULL, [OUTFileNo] [int] NULL, [ChargeOutRateInd] [char](1) NULL, [OrgClosedDate] [datetime] NULL, [ReOpenedDate] [datetime] NULL, [FixedFee] [char](1) DEFAULT(''N'') NOT NULL, [ShowCommentInAlarm] [char](1) DEFAULT(''N'') NOT NULL, [Closed] [char](1) DEFAULT(''N'') NOT NULL, [CloseDate] [datetime] NULL, CONSTRAINT [PK_matterscopy] PRIMARY KEY CLUSTERED ([Code] ASC)) ON [PRIMARY]') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN INSERT INTO [Keyhouse_TS].[dbo].[matterscopy] ([Code], [ClientCode], [Matter], [Description], [FECode], [Partner], [Secretary], [Dept], [Started], [WType], [Branch], [EstFee], [OutlayBud], [ExpBillD], [ExpPayD], [S13], [Comment], [DebtBal], [OutlayBal], [ClientBal], [ClientCurBal], [ClientDepBal], [DebtBalFwd], [OutlayBalFwd], [ClientBalFwd], [ClientCurBalFwd], [ClientDepBalFwd], [PendingBal], [ClientMin], [FileNum], [ThirdPart], [ThPartSol], [Value], [Undertaking], [LastAct], [LastActType], [LastActWho], [StatuteLimits], [Status], [Section68], [FNL_Date], [FNL_Name], [FNL_Address], [FNL_Fees], [FNL_Outlay], [FNL_VAT], [FNL_Total], [OldRef], [PCODE], [PFECODE], [User1], [User2], [User3], [DepositName], [DepositType], [TimeBal], [ChargeBal], [YourRef], [CurDebtBal], [CurOutlayBal], [CurClientBal], [CurClientCBal], [CurClientDBal], [CurDebtBalFwd], [CurOutlayBalFwd], [CurClientBalFwd], [CurClientCBalFwd], [CurClientDBalFwd], [CurPendingBal], [Unallocated], [Statements], [ChargeLevel], [FileColour], [OpenInvoiceNo], [Password], [CompBillOnOff], [CompFrequency], [CompOutlayLimit], [CompFeesLimit], [CompTotalLimit], [CompBillingMatter], [CompBilling], [ClientName], [ClientAddress], [ClientSalutation], [ChargeArrangement], [Importance], [OriginalDebt], [DebtCollected], [RecoverableCosts], [DebtInterest], [BillingMethod], [CollectingBalance], [Publish], [Permissions], [OUTFileNo], [ChargeOutRateInd], [OrgClosedDate], [ReOpenedDate], [FixedFee], [ShowCommentInAlarm], [Closed], [CloseDate]) SELECT [Code], [ClientCode], [Matter], RTRIM([Description]), RTRIM([FECode]), RTRIM([Partner]), RTRIM([Secretary]), [Dept], [Started], [WType], [Branch], [EstFee], [OutlayBud], [ExpBillD], [ExpPayD], [S13], RTRIM([Comment]), [DebtBal], [OutlayBal], [ClientBal], [ClientCurBal], [ClientDepBal], [DebtBalFwd], [OutlayBalFwd], [ClientBalFwd], [ClientCurBalFwd], [ClientDepBalFwd], [PendingBal], [ClientMin], [FileNum], RTRIM([ThirdPart]), RTRIM([ThPartSol]), [Value], [Undertaking], [LastAct], RTRIM([LastActType]), RTRIM([LastActWho]), [StatuteLimits], RTRIM([Status]), [Section68], [FNL_Date], RTRIM([FNL_Name]), RTRIM([FNL_Address]), [FNL_Fees], [FNL_Outlay], [FNL_VAT], [FNL_Total], RTRIM([OldRef]), RTRIM([PCODE]), RTRIM([PFECODE]), RTRIM([User1]), RTRIM([User2]), RTRIM([User3]), RTRIM([DepositName]), [DepositType], [TimeBal], [ChargeBal], RTRIM([YourRef]), [CurDebtBal], [CurOutlayBal], [CurClientBal], [CurClientCBal], [CurClientDBal], [CurDebtBalFwd], [CurOutlayBalFwd], [CurClientBalFwd], [CurClientCBalFwd], [CurClientDBalFwd], [CurPendingBal], [Unallocated], [Statements], [ChargeLevel], [FileColour], [OpenInvoiceNo], RTRIM([Password]), [CompBillOnOff], [CompFrequency], [CompOutlayLimit], [CompFeesLimit], [CompTotalLimit], RTRIM([CompBillingMatter]), [CompBilling], RTRIM([ClientName]), RTRIM([ClientAddress]), RTRIM([ClientSalutation]), [ChargeArrangement], [Importance], [OriginalDebt], [DebtCollected], [RecoverableCosts], [DebtInterest], [BillingMethod], [CollectingBalance], [Publish], [Permissions], [OUTFileNo], [ChargeOutRateInd], [OrgClosedDate], [ReOpenedDate], [FixedFee], [ShowCommentInAlarm], [Closed], [CloseDate] FROM [dbo].[matters] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN DROP TABLE [dbo].[Matters] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN CREATE TABLE [dbo].[matters] ([Code] [char](11) NOT NULL, [ClientCode] [char](6) NOT NULL, [Matter] [char](4) NOT NULL, [Description] [varchar](200) DEFAULT('') NOT NULL, [FECode] [varchar](10) NOT NULL, [Partner] [varchar](10) NULL, [Secretary] [varchar](10) NULL, [Dept] [char](3) NOT NULL, [Started] [datetime] NULL, [WType] [char](4) NOT NULL, [Branch] [char](1) NULL, [EstFee] [decimal](17, 2) DEFAULT(0) NOT NULL, [OutlayBud] [decimal](17, 2) DEFAULT(0) NOT NULL, [ExpBillD] [datetime] NULL, [ExpPayD] [datetime] NULL, [S13] [char](1) NULL, [Comment] [varchar](3000) NULL, [DebtBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [OutlayBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientCurBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientDepBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [DebtBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [OutlayBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientCurBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientDepBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [PendingBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [ClientMin] [decimal](17, 2) DEFAULT(0) NOT NULL, [FileNum] [int] NULL, [ThirdPart] [varchar](6) NULL, [ThPartSol] [varchar](6) NULL, [Value] [decimal](17, 2) NULL, [Undertaking] [char](1) NULL, [LastAct] [datetime] NULL, [LastActType] [varchar](10) NULL, [LastActWho] [varchar](10) NULL, [StatuteLimits] [datetime] NULL, [Status] [varchar](6) NULL, [Section68] [char](1) NULL, [FNL_Date] [datetime] NULL, [FNL_Name] [varchar](40) NULL, [FNL_Address] [varchar](120) NULL, [FNL_Fees] [decimal](15, 2) DEFAULT(0) NOT NULL, [FNL_Outlay] [decimal](15, 2) DEFAULT(0) NOT NULL, [FNL_VAT] [decimal](15, 2) DEFAULT(0) NOT NULL, [FNL_Total] [decimal](15, 2) DEFAULT(0) NOT NULL, [OldRef] [varchar](12) NULL, [PCODE] [varchar](11) NULL, [PFECODE] [varchar](10) NULL, [User1] [varchar](20) NULL, [User2] [varchar](20) NULL, [User3] [varchar](20) NULL, [DepositName] [varchar](40) NULL, [DepositType] [char](4) NULL, [TimeBal] [decimal](13, 2) DEFAULT(0) NOT NULL, [ChargeBal] [decimal](13, 2) DEFAULT(0) NOT NULL, [YourRef] [varchar](40) NULL, [CurDebtBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurOutlayBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientCBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientDBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurDebtBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurOutlayBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientCBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurClientDBalFwd] [decimal](17, 2) DEFAULT(0) NOT NULL, [CurPendingBal] [decimal](17, 2) DEFAULT(0) NOT NULL, [Unallocated] [decimal](13, 2) DEFAULT(0) NOT NULL, [Statements] [char](1) NULL, [ChargeLevel] [int] NULL, [FileColour] [char](3) NULL, [OpenInvoiceNo] [int] NULL, [Password] [varchar](20) NULL, [CompBillOnOff] [char](1) NULL, [CompFrequency] [char](1) NULL, [CompOutlayLimit] [decimal](13, 2) DEFAULT(0) NOT NULL, [CompFeesLimit] [decimal](13, 2) DEFAULT(0) NOT NULL, [CompTotalLimit] [decimal](13, 2) DEFAULT(0) NOT NULL, [CompBillingMatter] [varchar](20) NULL, [CompBilling] [char](1) NULL, [ClientName] [varchar](60) NULL, [ClientAddress] [varchar](120) NULL, [ClientSalutation] [varchar](40) NULL, [ChargeArrangement] [char](3) NULL, [Importance] [smallint] NULL, [OriginalDebt] [decimal](18, 2) DEFAULT(0) NOT NULL, [DebtCollected] [decimal](18, 2) DEFAULT(0) NOT NULL, [RecoverableCosts] [decimal](18, 2) DEFAULT(0) NOT NULL, [DebtInterest] [decimal](18, 2) DEFAULT(0) NOT NULL, [BillingMethod] [char](1) NULL, [CollectingBalance] [decimal](18, 2) DEFAULT(0) NOT NULL, [Publish] [char](1) NULL, [Permissions] [int] DEFAULT(0) NOT NULL, [OUTFileNo] [int] NULL, [ChargeOutRateInd] [char](1) NULL, [OrgClosedDate] [datetime] NULL, [ReOpenedDate] [datetime] NULL, [FixedFee] [char](1) DEFAULT('N') NOT NULL, [ShowCommentInAlarm] [char](1) DEFAULT('N') NOT NULL, [Closed] [char](1) DEFAULT('N') NOT NULL, [CloseDate] [datetime] NULL, CONSTRAINT [PK_matters] PRIMARY KEY CLUSTERED ([Code] ASC)) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN INSERT INTO [dbo].[matters] ([Code], [ClientCode], [Matter], [Description], [FECode], [Partner], [Secretary], [Dept], [Started], [WType], [Branch], [EstFee], [OutlayBud], [ExpBillD], [ExpPayD], [S13], [Comment], [DebtBal], [OutlayBal], [ClientBal], [ClientCurBal], [ClientDepBal], [DebtBalFwd], [OutlayBalFwd], [ClientBalFwd], [ClientCurBalFwd], [ClientDepBalFwd], [PendingBal], [ClientMin], [FileNum], [ThirdPart], [ThPartSol], [Value], [Undertaking], [LastAct], [LastActType], [LastActWho], [StatuteLimits], [Status], [Section68], [FNL_Date], [FNL_Name], [FNL_Address], [FNL_Fees], [FNL_Outlay], [FNL_VAT], [FNL_Total], [OldRef], [PCODE], [PFECODE], [User1], [User2], [User3], [DepositName], [DepositType], [TimeBal], [ChargeBal], [YourRef], [CurDebtBal], [CurOutlayBal], [CurClientBal], [CurClientCBal], [CurClientDBal], [CurDebtBalFwd], [CurOutlayBalFwd], [CurClientBalFwd], [CurClientCBalFwd], [CurClientDBalFwd], [CurPendingBal], [Unallocated], [Statements], [ChargeLevel], [FileColour], [OpenInvoiceNo], [Password], [CompBillOnOff], [CompFrequency], [CompOutlayLimit], [CompFeesLimit], [CompTotalLimit], [CompBillingMatter], [CompBilling], [ClientName], [ClientAddress], [ClientSalutation], [ChargeArrangement], [Importance], [OriginalDebt], [DebtCollected], [RecoverableCosts], [DebtInterest], [BillingMethod], [CollectingBalance], [Publish], [Permissions], [OUTFileNo], [ChargeOutRateInd], [OrgClosedDate], [ReOpenedDate], [FixedFee], [ShowCommentInAlarm], [Closed], [CloseDate]) SELECT [Code], [ClientCode], [Matter], RTRIM([Description]), RTRIM([FECode]), RTRIM([Partner]), RTRIM([Secretary]), [Dept], [Started], [WType], [Branch], [EstFee], [OutlayBud], [ExpBillD], [ExpPayD], [S13], RTRIM([Comment]), [DebtBal], [OutlayBal], [ClientBal], [ClientCurBal], [ClientDepBal], [DebtBalFwd], [OutlayBalFwd], [ClientBalFwd], [ClientCurBalFwd], [ClientDepBalFwd], [PendingBal], [ClientMin], [FileNum], RTRIM([ThirdPart]), RTRIM([ThPartSol]), [Value], [Undertaking], [LastAct], RTRIM([LastActType]), RTRIM([LastActWho]), [StatuteLimits], RTRIM([Status]), [Section68], [FNL_Date], RTRIM([FNL_Name]), RTRIM([FNL_Address]), [FNL_Fees], [FNL_Outlay], [FNL_VAT], [FNL_Total], RTRIM([OldRef]), RTRIM([PCODE]), RTRIM([PFECODE]), RTRIM([User1]), RTRIM([User2]), RTRIM([User3]), RTRIM([DepositName]), [DepositType], [TimeBal], [ChargeBal], RTRIM([YourRef]), [CurDebtBal], [CurOutlayBal], [CurClientBal], [CurClientCBal], [CurClientDBal], [CurDebtBalFwd], [CurOutlayBalFwd], [CurClientBalFwd], [CurClientCBalFwd], [CurClientDBalFwd], [CurPendingBal], [Unallocated], [Statements], [ChargeLevel], [FileColour], [OpenInvoiceNo], RTRIM([Password]), [CompBillOnOff], [CompFrequency], [CompOutlayLimit], [CompFeesLimit], [CompTotalLimit], RTRIM([CompBillingMatter]), [CompBilling], RTRIM([ClientName]), RTRIM([ClientAddress]), RTRIM([ClientSalutation]), [ChargeArrangement], [Importance], [OriginalDebt], [DebtCollected], [RecoverableCosts], [DebtInterest], [BillingMethod], [CollectingBalance], [Publish], [Permissions], [OUTFileNo], [ChargeOutRateInd], [OrgClosedDate], [ReOpenedDate], [FixedFee], [ShowCommentInAlarm], [Closed], [CloseDate] FROM [Keyhouse_TS].[dbo].[matterscopy] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [CompBillingMatters] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [CompBillingMatters] ON [dbo].[matters] ( [CompBillingMatter] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyBranch] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyBranch] ON [dbo].[matters] ( [Branch] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyClientMatter] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyClientMatter] ON [dbo].[matters] ( [ClientCode] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyClosed] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyClosed] ON [dbo].[matters] ( [Closed] ASC, [Code] ASC ) INCLUDE ( [Description], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyCode] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyCode] ON [dbo].[matters] ( [Code] ASC ) INCLUDE ( [Description], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyDept] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyDept] ON [dbo].[matters] ( [Dept] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyFee] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyFee] ON [dbo].[matters] ( [FECode] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyFePCode] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyFePCode] ON [dbo].[matters] ( [PFECODE] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyFileColor] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyFileColor] ON [dbo].[matters] ( [FileColour] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyFileNumber] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyFileNumber] ON [dbo].[matters] ( [FileNum] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyMatterInprogress] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyMatterInprogress] ON [dbo].[matters] ( [PCODE] ASC ) INCLUDE ( [Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyOldMatter] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyOldMatter] ON [dbo].[matters] ( [OldRef] ASC ) INCLUDE ( [Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyUser1] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyUser1] ON [dbo].[matters] ( [User1] ASC ) INCLUDE ( [Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyUser2] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyUser2] ON [dbo].[matters] ( [User2] ASC ) INCLUDE ( [Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyUser3] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyUser3] ON [dbo].[matters] ( [User3] ASC ) INCLUDE ( [Code], [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KeyWorkType] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KeyWorkType] ON [dbo].[matters] ( [WType] ASC, [Code] ASC ) INCLUDE ( [Closed], [CloseDate]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') BEGIN /****** Object: Index [KYNET_index_Matters_On_Code_Permissions_ClientCode] Script Date: 22/08/2014 15:42:59 ******/ CREATE NONCLUSTERED INDEX [KYNET_index_Matters_On_Code_Permissions_ClientCode] ON [dbo].[matters] ( [Code] ASC, [Permissions] ASC, [ClientCode] ASC ) INCLUDE ( [Description], [Closed], [CloseDate]) ON [PRIMARY] END GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMattersFully') --BEGIN -- IF EXISTS (SELECT * FROM [dbo].[matters]) -- BEGIN -- IF EXISTS (SELECT * FROM [Keyhouse_TS].[SYS].[objects] SO WHERE SO.[name] = 'matterscopy' AND SO.[type] = 'U') -- BEGIN -- DROP TABLE [Keyhouse_TS].[dbo].[matterscopy] -- END -- END --END --GO /************************************************* * * FIX MATTERS TABLE - END * *************************************************/ /************************************************* * * FIX TIME ENTRY TABLE - START * *************************************************/ IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'RECORDID' AND SC.[system_type_id] <> 56 WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixTimeEntryFully') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN UPDATE TIE SET TIE.[DATE] = ISNULL(MAT.[STARTED], GetDate()) FROM [dbo].[TimeEntry] TIE LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = TIE.[MATTER] WHERE TIE.[DATE] IS NULL END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN EXEC('CREATE TABLE [Keyhouse_TS].[dbo].[TimeEntryCopy] ([MATTER] [varchar](20) NOT NULL, [FEEEARN] [varchar](10) NOT NULL, [DATE] [datetime] NOT NULL, [TIME] [int] DEFAULT(0) NOT NULL, [RATE] [decimal](10, 2) DEFAULT(0) NOT NULL, [CHARGE] [decimal](10, 2) DEFAULT(0) NOT NULL, [TASK] [varchar](6) DEFAULT('''') NOT NULL, [TIMEORCHARGE] [varchar](1) NULL, [COMMENT] [varchar](1000) NULL, [BILLED] [decimal](13, 2) DEFAULT(0) NOT NULL, [NCCODE] [varchar](3) NULL, [DOCKET] [int] DEFAULT(0) NOT NULL, [TEAM] [varchar](10) NULL, [TRACKREF] [int] DEFAULT(0) NOT NULL, [REC_IRR] [varchar](1) NULL, [SHOULDHAVE] [decimal](13, 2) DEFAULT(0) NOT NULL, [INVOICENO] [int] NULL, [PERIOD] [int] NULL, [YEAR] [int] NULL, [BILLINGPERIOD] [int] NULL, [BILLINGYEAR] [int] NULL, [OPENINV] [varchar](1) NULL, [RECORDID] [int] NOT NULL, [ActionId] [int] NULL, [StageCode] [varchar](3) NULL, [Leave] [varchar](1) NULL, [BilledAmount] [decimal](10, 2) NULL, [IncludeInBill] [int] NULL, [BILLINGDATE] [datetime] NULL, [AxleNumber] [varchar](1) NULL, [WriteOffDT] [datetime] NULL, [WriteOffID] [int] NULL, CONSTRAINT [PK_TimeEntryCopy] PRIMARY KEY CLUSTERED ([RECORDID] ASC)) ON [PRIMARY]') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN INSERT INTO [Keyhouse_TS].[dbo].[TimeEntryCopy] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID]) SELECT RTRIM(ISNULL([MATTER], '')), RTRIM(ISNULL([FEEEARN], '')), [DATE], ISNULL([TIME], 0), ISNULL([RATE], 0), ISNULL([CHARGE], 0), RTRIM(ISNULL([TASK], '')), [TIMEORCHARGE], RTRIM([COMMENT]), ISNULL([BILLED], 0), RTRIM([NCCODE]), ISNULL([DOCKET], 0), RTRIM([TEAM]), ISNULL([TRACKREF], 0), [REC_IRR], ISNULL([SHOULDHAVE], 0), [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID] FROM [dbo].[TimeEntry] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN DROP TABLE [dbo].[TimeEntry] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN CREATE TABLE [dbo].[TimeEntry] ([MATTER] [varchar](20) NOT NULL, [FEEEARN] [varchar](10) NOT NULL, [DATE] [datetime] NOT NULL, [TIME] [int] DEFAULT(0) NOT NULL, [RATE] [decimal](10, 2) DEFAULT(0) NOT NULL, [CHARGE] [decimal](10, 2) DEFAULT(0) NOT NULL, [TASK] [varchar](6) DEFAULT('') NOT NULL, [TIMEORCHARGE] [varchar](1) NULL, [COMMENT] [varchar](1000) NULL, [BILLED] [decimal](13, 2) DEFAULT(0) NOT NULL, [NCCODE] [varchar](3) NULL, [DOCKET] [int] DEFAULT(0) NOT NULL, [TEAM] [varchar](10) NULL, [TRACKREF] [int] DEFAULT(0) NOT NULL, [REC_IRR] [varchar](1) NULL, [SHOULDHAVE] [decimal](13, 2) DEFAULT(0) NOT NULL, [INVOICENO] [int] NULL, [PERIOD] [int] NULL, [YEAR] [int] NULL, [BILLINGPERIOD] [int] NULL, [BILLINGYEAR] [int] NULL, [OPENINV] [varchar](1) NULL, [RECORDID] [int] IDENTITY(1, 1) NOT NULL, [ActionId] [int] NULL, [StageCode] [varchar](3) NULL, [Leave] [varchar](1) NULL, [BilledAmount] [decimal](10, 2) NULL, [IncludeInBill] [int] NULL, [BILLINGDATE] [datetime] NULL, [AxleNumber] [varchar](1) NULL, [WriteOffDT] [datetime] NULL, [WriteOffID] [int] NULL, CONSTRAINT [PK_TimeEntry] PRIMARY KEY CLUSTERED ([RECORDID] ASC)) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN SET IDENTITY_INSERT [dbo].[TimeEntry] ON INSERT INTO [dbo].[TimeEntry] ([MATTER], [FEEEARN], [DATE], [TIME], [RATE], [CHARGE], [TASK], [TIMEORCHARGE], [COMMENT], [BILLED], [NCCODE], [DOCKET], [TEAM], [TRACKREF], [REC_IRR], [SHOULDHAVE], [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID]) SELECT RTRIM(ISNULL([MATTER], '')), RTRIM(ISNULL([FEEEARN], '')), [DATE], ISNULL([TIME], 0), ISNULL([RATE], 0), ISNULL([CHARGE], 0), RTRIM(ISNULL([TASK], '')), [TIMEORCHARGE], RTRIM([COMMENT]), ISNULL([BILLED], 0), RTRIM([NCCODE]), ISNULL([DOCKET], 0), RTRIM([TEAM]), ISNULL([TRACKREF], 0), [REC_IRR], ISNULL([SHOULDHAVE], 0), [INVOICENO], [PERIOD], [YEAR], [BILLINGPERIOD], [BILLINGYEAR], [OPENINV], [RECORDID], [ActionId], [StageCode], [Leave], [BilledAmount], [IncludeInBill], [BILLINGDATE], [AxleNumber], [WriteOffDT], [WriteOffID] FROM [Keyhouse_TS].[dbo].[TimeEntryCopy] SET IDENTITY_INSERT [dbo].[TimeEntry] OFF DECLARE @maxVal INT SELECT @maxVal = ISNULL(max(RECORDID),0)+1 from [dbo].[TimeEntry] DBCC CHECKIDENT('TimeEntry', RESEED, @maxVal) END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [IDX_WriteOffs] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [IDX_WriteOffs] ON [dbo].[TimeEntry] ( [WriteOffID] ASC, [RECORDID] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeeFeeMater] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeeFeeMater] ON [dbo].[TimeEntry] ( [FEEEARN] ASC, [MATTER] ASC, [DATE] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyFeeEarn] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyFeeEarn] ON [dbo].[TimeEntry] ( [FEEEARN] ASC, [DATE] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyInvoiceNo] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyInvoiceNo] ON [dbo].[TimeEntry] ( [INVOICENO] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyMatter] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[TimeEntry] ( [MATTER] ASC, [DATE] ASC, [RECORDID] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyNCCCode] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyNCCCode] ON [dbo].[TimeEntry] ( [NCCODE] ASC, [FEEEARN] ASC, [DATE] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyPeriod] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyPeriod] ON [dbo].[TimeEntry] ( [MATTER] ASC, [PERIOD] ASC, [YEAR] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyTask] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyTask] ON [dbo].[TimeEntry] ( [TASK] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyTeam] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyTeam] ON [dbo].[TimeEntry] ( [TEAM] ASC, [MATTER] ASC, [DATE] ASC ) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') BEGIN /****** Object: Index [KeyTrackRef] Script Date: 22/08/2014 12:56:17 ******/ CREATE NONCLUSTERED INDEX [KeyTrackRef] ON [dbo].[TimeEntry] ( [TRACKREF] ASC, [DATE] ASC ) ON [PRIMARY] END GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixTimeEntryFully') --BEGIN -- IF EXISTS (SELECT * FROM [dbo].[TimeEntry]) -- BEGIN -- IF EXISTS (SELECT * FROM [Keyhouse_TS].[SYS].[objects] SO WHERE SO.[name] = 'TimeEntryCopy' AND SO.[type] = 'U') -- BEGIN -- DROP TABLE [Keyhouse_TS].[dbo].[TimeEntryCopy] -- END -- END --END --GO /************************************************* * * FIX TIME ENTRY TABLE - END * *************************************************/ /************************************************* * * FIX CaseUDFAnswers Table - START * *************************************************/ IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CASECODE' AND SC.[max_length] < 20 WHERE SO.[name] = 'CaseUDFAnswers' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixCaseUDFAnswersFully') END ELSE IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'UDFNAME' AND SC.[max_length] < 30 WHERE SO.[name] = 'CaseUDFAnswers' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixCaseUDFAnswersFully') END GO GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN EXEC ('CREATE TABLE [Keyhouse_TS].[dbo].[CaseUDFAnswersCopy] ([CASECODE] VARCHAR(20), [UDFFILE] CHAR(5), [UDFNAME] VARCHAR(30), [SEQNO] int, [DateValue] datetime, [NumberValue] decimal(20, 2), [ForCopy] CHAR(1), [TEXT1] VARCHAR(MAX)) ON [PRIMARY]') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN /************************************************************************************************ * * The CORRECT schema for CaseUDFAnswers has a primary key of CASECODE, UDFFILE, UDFNAME * but there are databases out there with NO key WHATSOEVER. The best we can do in that case * is take the last (highest SEQNO) value for each CASECODE, UDFFILE, UDFNAME combination and * discard other duplicates for taht same combination... * * We will also KEEP this copy table after this process, so that if - for whatever reason - the * customer expected to see one of the other duplicates it can be restored from there. * ************************************************************************************************/ INSERT INTO [Keyhouse_TS].[dbo].[CaseUDFAnswersCopy] ([CASECODE], [UDFFILE], [UDFNAME], [SEQNO], [DateValue], [NumberValue], [ForCopy], [TEXT1]) SELECT RTRIM(ISNULL(TO1.[CASECODE], '')) AS [CASECODE], RTRIM(ISNULL(TO1.[UDFFILE], '')) AS [UDFFILE], RTRIM(ISNULL(TO1.[UDFNAME], '')) AS [UDFNAME], CONVERT(int, TO1.[SEQNO]) AS [SEQNO], TO1.[DateValue] AS [DateValue], CONVERT(decimal(20, 2), TO1.[NumberValue]) AS [NumberValue], TO1.[ForCopy] AS [ForCopy], CONVERT(VARCHAR(MAX), TO1.[TEXT1]) AS [TEXT1] FROM (select distinct [casecode], [udffile], [udfname] from [dbo].[CaseUDFAnswers]) UGH CROSS APPLY ( SELECT TOP 1 * FROM [dbo].[CaseUDFAnswers] CUF WHERE CUF.[CASECODE] = UGH.[CASECODE] AND CUF.[UDFFILE] = UGH.[UDFFILE] AND CUF.[UDFNAME] = UGH.[UDFNAME] ORDER BY CUF.[SEQNO] DESC) TO1 INNER JOIN [dbo].[matters] MAT ON MAT.[code] = TO1.[CASECODE] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN DROP TABLE [dbo].[CaseUDFAnswers] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN CREATE TABLE [dbo].[CaseUDFAnswers] ([CASECODE] VARCHAR(20), [UDFFILE] CHAR(5), [UDFNAME] VARCHAR(30), [SEQNO] int, [DateValue] datetime, [NumberValue] decimal(20, 2), [ForCopy] CHAR(1), [TEXT1] VARCHAR(MAX), CONSTRAINT [PK_CaseUDFAnswers] PRIMARY KEY CLUSTERED ([CASECODE] ASC, [UDFFILE] ASC, [UDFNAME] ASC)) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN INSERT INTO [dbo].[CaseUDFAnswers] ([CASECODE], [UDFFILE], [UDFNAME], [SEQNO], [DateValue], [NumberValue], [ForCopy], [TEXT1]) SELECT RTRIM(ISNULL(CUF.[CASECODE], '')) AS [CASECODE], RTRIM(ISNULL(CUF.[UDFFILE], '')) AS [UDFFILE], RTRIM(ISNULL(CUF.[UDFNAME], '')) AS [UDFNAME], CONVERT(int, CUF.[SEQNO]) AS [SEQNO], CUF.[DateValue] AS [DateValue], CONVERT(decimal(20, 2), CUF.[NumberValue]) AS [NumberValue], CUF.[ForCopy] AS [ForCopy], CONVERT(VARCHAR(MAX), CUF.[TEXT1]) AS [TEXT1] FROM [Keyhouse_TS].[dbo].[CaseUDFAnswersCopy] CUF INNER JOIN [dbo].[matters] MAT ON MAT.[code] = CUF.[CASECODE] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN CREATE NONCLUSTERED INDEX [Key_SeqNo] ON [dbo].[CaseUDFAnswers] ([SEQNO] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN CREATE NONCLUSTERED INDEX [Key_UDF] ON [dbo].[CaseUDFAnswers] ([UDFFILE] ASC, [UDFNAME] ASC, [CASECODE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') BEGIN CREATE NONCLUSTERED INDEX [KeyCaseSeq] ON [dbo].[CaseUDFAnswers] ([CASECODE] ASC, [SEQNO] ASC) ON [PRIMARY] END GO -- Commented out in order to keep "CaseUDFAnswersCopy" table: See comment about duplicates, above --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseUDFAnswersFully') --BEGIN -- DROP TABLE [dbo].[CaseUDFAnswersCopy] --END --GO /************************************************* * * FIX CaseUDFAnswers TABLE - END * *************************************************/ IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'TimeEntryLogNew' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[TimeEntryLogNew]( [TimeEntryLogID] [decimal](17, 0) IDENTITY(1,1) NOT NULL, [MATTER] [char](11) NOT NULL, [FEEEARN] [char](3) NULL, [DATE] [datetime] NULL, [TIME] [decimal](7, 0) NULL, [RATE] [decimal](10, 2) NULL, [CHARGE] [decimal](10, 2) NULL, [TASK] [char](6) NULL, [TIMEORCHARGE] [char](1) NULL, [COMMENT] [char](255) NULL, [BILLED] [decimal](13, 2) NULL, [NCCODE] [char](3) NULL, [DOCKET] [decimal](9, 0) NULL, [TEAM] [char](3) NULL, [TRACKREF] [decimal](9, 0) NULL, [REC_IRR] [char](1) NULL, [SHOULDHAVE] [decimal](13, 2) NULL, [INVOICENO] [int] NULL, [PERIOD] [int] NULL, [YEAR] [int] NULL, [BILLINGPERIOD] [int] NULL, [BILLINGYEAR] [int] NULL, [OPENINV] [char](1) NULL, [RECORDID] [decimal](17, 0) NULL, [ActionId] [int] NULL, [StageCode] [char](3) NULL, [Leave] [char](1) NULL, [BilledAmount] [decimal](10, 2) NULL, [IncludeInBill] [int] NULL, [BILLINGDATE] [datetime] NULL, [AxleNumber] [int] NULL, [WriteOffDT] [datetime] NULL, [WriteOffID] [int] NULL, [LogFor] [char](1) NOT NULL ) ON [PRIMARY] ALTER TABLE [dbo].[TimeEntryLogNew] ADD CONSTRAINT [PK__TimeEntryLog__TimeEntryLogID] PRIMARY KEY CLUSTERED ( [TimeEntryLogID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSORGDEBT' AND SC.[precision] <> 10 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSORGDEBT] decimal(10, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSINTADD' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSINTADD] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSCONTRATE' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSCONTRATE] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSDAILYRATE' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSDAILYRATE] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSINSTTOTAL' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSINSTTOTAL] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSINSTAMT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSINSTAMT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSFIRSTINVAMT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSFIRSTINVAMT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSORGDEBT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSORGDEBT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSBALDEBT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSBALDEBT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSBALCLIENT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSBALCLIENT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSCOSTISSUE' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSCOSTISSUE] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSCOSTJDGT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSCOSTJDGT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSCOSTENF' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSCOSTENF] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSFEEISSUE' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSFEEISSUE] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSFEEJDGT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSFEEJDGT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSFEEENF' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSFEEENF] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSINTISSUE' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSINTISSUE] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CSINTJDGT' AND SC.[precision] < 9 WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ALTER COLUMN [CSINTJDGT] decimal(9, 2) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Value' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE [dbo].[matters] SET [Value] = ISNULL([Value], 0)' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[matters] ALTER COLUMN [Value] [decimal](17, 2) NOT NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[matters] ADD CONSTRAINT [DC_ValueZero] DEFAULT 0 FOR [Value]' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'FILENUM' WHERE SO.[name] = 'CaseMaster' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseMaster] ADD [FileNum] [int] DEFAULT(0) NOT NULL END GO IF NOT EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'OtherRef' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[matters] ADD [OtherRef] VARCHAR(10) NULL END GO IF NOT EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Location' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[matters] ADD [Location] VARCHAR(20) NULL END GO IF NOT EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DestroyDate' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[matters] ADD [DestroyDate] datetime NULL END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'DocumentCharges' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[DocumentCharges] ([DocumentName] VARCHAR(10) NOT NULL, [OutlayCode] VARCHAR(10) NOT NULL, [Band1] decimal(18, 2) DEFAULT(0) NOT NULL, [OutlayAmount] decimal(18, 2) DEFAULT(0) NOT NULL, [NominalCode] VARCHAR(10) NOT NULL, [RecordID] INT IDENTITY(1, 1) NOT NULL, [Band2] decimal(18, 2) DEFAULT(0) NOT NULL, [OutlayAmt2] decimal(18, 2) DEFAULT(0) NOT NULL, [Band3] decimal(18, 2) DEFAULT(0) NOT NULL, [OutlayAmt3] decimal(18, 2) DEFAULT(0) NOT NULL, [Band4] decimal(18, 2) DEFAULT(0) NOT NULL, [OutlayAmt4] decimal(18, 2) DEFAULT(0) NOT NULL, [Band5] decimal(18, 2) DEFAULT(0) NOT NULL, [OutlayAmt5] decimal(18, 2) DEFAULT(0) NOT NULL, CONSTRAINT [PK_DocumentCharges] PRIMARY KEY CLUSTERED ([RecordID] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_DocumentName' WHERE SO.[name] = 'DocumentCharges' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_DocumentName] ON [dbo].[DocumentCharges] ([DocumentName] ASC) INCLUDE ([OutlayCode], [NominalCode]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_OutlayCode' WHERE SO.[name] = 'DocumentCharges' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_OutlayCode] ON [dbo].[DocumentCharges] ([OutlayCode] ASC) INCLUDE ([DocumentName], [NominalCode]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_NominalCode' WHERE SO.[name] = 'DocumentCharges' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_NominalCode] ON [dbo].[DocumentCharges] ([NominalCode] ASC) INCLUDE ([DocumentName], [OutlayCode]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'DocumentChargesFees' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[DocumentChargesFees] ([DocumentName] VARCHAR(10) NOT NULL, [RecordID] INT IDENTITY(1, 1) NOT NULL, [TaskChargeCode] CHAR(3) NOT NULL, CONSTRAINT [PK_DocumentChargesFees] PRIMARY KEY CLUSTERED ([RecordID] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_DocumentName' WHERE SO.[name] = 'DocumentChargesFees' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_DocumentName] ON [dbo].[DocumentChargesFees] ([DocumentName] ASC) INCLUDE ([TaskChargeCode]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_TaskChargeCode' WHERE SO.[name] = 'DocumentChargesFees' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_TaskChargeCode] ON [dbo].[DocumentChargesFees] ([TaskChargeCode] ASC) INCLUDE ([DocumentName]) ON [PRIMARY] END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'CommercialOrNon' WHERE SO.[name] = 'Undertakings' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ADD [CommercialOrNon] VARCHAR(1)' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Notes' WHERE SO.[name] = 'Undertakings' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ADD [Notes] VARCHAR(3000) DEFAULT('''') NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DESCRIPTION' AND ( SC.[system_type_id] <> 167 OR SC.[max_length] < 500) WHERE SO.[name] = 'Undertakings' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ALTER COLUMN [DESCRIPTION] VARCHAR(500)' EXEC (@COMMAND) SET @COMMAND = 'UPDATE UND SET UND.[DESCRIPTION] = RTRIM(ISNULL(UND.[DESCRIPTION], '''')) FROM [dbo].[Undertakings] UND' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ALTER COLUMN [DESCRIPTION] VARCHAR(500) NOT NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ADD CONSTRAINT DF_Description DEFAULT '''' FOR [Description]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'FileNum' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[diary] ADD [FileNum] int default(0) not null' EXEC (@COMMAND) END GO DELETE [dbo].[diaryattachments] WHERE ISNULL([Diaryid], 0) = 0 IF EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DIARYID' AND SC.[system_type_id] <> 56 WHERE SO.[name] = 'DiaryAttachments') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixDiaryAttachments') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN EXEC ('SELECT * INTO [Keyhouse_TS].[dbo].[DiaryAttachmentsCopy] FROM [dbo].[DiaryAttachments]') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN DROP TABLE [dbo].[DiaryAttachments] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE TABLE [dbo].[DiaryAttachments] ([DIARYID] INT NOT NULL, [TRACKREFERENCE] INT NOT NULL, [CASECODE] VARCHAR(20) NOT NULL, [NAME] VARCHAR(10) NOT NULL, [DOCUMENT] VARCHAR(100) DEFAULT('') NOT NULL, [FILEPATH] VARCHAR(255) DEFAULT('') NOT NULL, [TYPE] VARCHAR(10) DEFAULT('') NOT NULL, [DOCCLASS] VARCHAR(10) DEFAULT('') NOT NULL, [DATEENTERED] DATETIME NULL, [ENTEREDBY] VARCHAR(8) DEFAULT('') NOT NULL, [LASTACCESSDATE] DATETIME NULL, [LASTACCESSBY] VARCHAR(8) DEFAULT('') NOT NULL, [SYSTEM] CHAR(1) NULL, [DICTATIONFILE] VARCHAR(255) NULL, [SOURCE] VARCHAR(20) NULL, [Fees] INT DEFAULT(0) NOT NULL, [Outlay] INT DEFAULT(0) NOT NULL, [OutlaySupplier] INT DEFAULT(0) NOT NULL) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN ALTER TABLE [dbo].[DiaryAttachments] ADD CONSTRAINT [PK_DiaryAttachments] PRIMARY KEY CLUSTERED ([TRACKREFERENCE]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN ALTER TABLE [dbo].[DiaryAttachments] ADD CONSTRAINT [UQ_DiaryAttachments] UNIQUE NONCLUSTERED ([DIARYID] ASC, [TRACKREFERENCE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN INSERT INTO [dbo].[DiaryAttachments] ([DIARYID], [TRACKREFERENCE], [CASECODE], [NAME], [DOCUMENT], [FILEPATH], [TYPE], [DOCCLASS], [DATEENTERED], [ENTEREDBY], [LASTACCESSDATE], [LASTACCESSBY], [SYSTEM], [DICTATIONFILE], [Source], [Fees], [Outlay], [OutlaySupplier]) SELECT ISNULL([DIARYID], 0), ISNULL([TRACKREFERENCE], 0), RTRIM(ISNULL([CASECODE], '')), RTRIM(ISNULL([NAME], '')), RTRIM(ISNULL([DOCUMENT], '')), RTRIM(ISNULL([FILEPATH], '')), RTRIM(ISNULL([TYPE], '')), RTRIM(ISNULL([DOCCLASS], '')), [DATEENTERED], RTRIM(ISNULL([ENTEREDBY], '')), [LASTACCESSDATE], RTRIM(ISNULL([LASTACCESSBY], '')), [SYSTEM], RTRIM(ISNULL([DICTATIONFILE], '')), RTRIM(ISNULL([Source], '')), ISNULL([Fees], 0), ISNULL([Outlay], 0), ISNULL([OutlaySupplier], 0) FROM [Keyhouse_TS].[dbo].[DiaryAttachmentsCopy] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE NONCLUSTERED INDEX [IX_DiaryAttachments] ON [dbo].[DiaryAttachments] ([DIARYID] ASC, [TRACKREFERENCE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE NONCLUSTERED INDEX [KeyCaseCode] ON [dbo].[DiaryAttachments] ([CASECODE] ASC, [TRACKREFERENCE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE NONCLUSTERED INDEX [KeyDocClass] ON [dbo].[DiaryAttachments] ([DOCCLASS] ASC) INCLUDE ([NAME], [DOCUMENT], [TYPE]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE NONCLUSTERED INDEX [KeyDocument] ON [dbo].[DiaryAttachments] ([DOCUMENT] ASC, [DIARYID] ASC) INCLUDE ([NAME], [DOCCLASS], [TYPE]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE NONCLUSTERED INDEX [KeyName] ON [dbo].[DiaryAttachments] ([NAME] ASC, [DIARYID] ASC) INCLUDE ([DOCUMENT], [DOCCLASS], [TYPE]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') BEGIN CREATE NONCLUSTERED INDEX [KeyType] ON [dbo].[DiaryAttachments] ([TYPE] ASC, [DIARYID] ASC) INCLUDE ([DOCUMENT], [DOCCLASS], [NAME]) ON [PRIMARY] END GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixDiaryAttachments') --BEGIN -- IF EXISTS -- (SELECT COUNT(1) FROM [dbo].[DiaryAttachments]) -- BEGIN -- DROP TABLE [Keyhouse_TS].[dbo].[DiaryAttachmentsCopy] -- END --END --GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'ARCHPATH' WHERE SO.[name] = 'DiaryAttachments' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[DiaryAttachments] ADD [ARCHPATH] VARCHAR(255) DEFAULT('''') not null' EXEC (@COMMAND) END GO IF [dbo].[ISSAM4]() = 0 BEGIN IF EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'MATTER' AND SC.[max_length] < 20 WHERE SO.[name] = 'MatterLedger') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixMatterLedger') END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN EXEC ('SELECT * INTO [Keyhouse_TS].[dbo].[MatterLedgerCopy] FROM [dbo].[MatterLedger]') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN DROP TABLE [dbo].[MatterLedger] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN CREATE TABLE [dbo].[MatterLedger] ([MATTER] [varchar](20) DEFAULT('') NOT NULL, [BATCHNO] [int] DEFAULT(0) NOT NULL, [PREF] [int] NULL, [DATE] [datetime] NOT NULL, [REF] [varchar](10) NULL, [NARR] [varchar](80) NULL, [VALUED] [decimal](17, 2) DEFAULT(0) NOT NULL, [VALUEO] [decimal](17, 2) DEFAULT(0) NOT NULL, [VALUEC] [decimal](17, 2) DEFAULT(0) NOT NULL, [FEE] [varchar](10) DEFAULT('') NOT NULL, [PER] [smallint] NULL, [YEAR] [smallint] NULL, [ENTRYDATE] [datetime] NULL, [CLIENT] [varchar](10) DEFAULT('') NOT NULL, [VALUECC] [decimal](17, 2) DEFAULT(0) NOT NULL, [VALUECD] [decimal](17, 2) DEFAULT(0) NOT NULL, [DEPOSITTYPE] [char](4) NULL, [CURVALUED] [decimal](17, 2) DEFAULT(0) NOT NULL, [CURVALUEO] [decimal](17, 2) DEFAULT(0) NOT NULL, [CURVALUEC] [decimal](17, 2) DEFAULT(0) NOT NULL, [CURVALUECC] [decimal](17, 2) DEFAULT(0) NOT NULL, [CURVALUECD] [decimal](17, 2) DEFAULT(0) NOT NULL, [LREF] [int] IDENTITY(1,1) NOT NULL, [BILLED] [char](1) NULL, [BILLINGYEAR] [int] NULL, [BILLINGPERIOD] [int] NULL, [BILLINGDATE] [datetime] NULL, [BilledOutlayValue] [decimal](17, 2) DEFAULT(0) NOT NULL, [InvoiceNo] [int] NULL, [IncludeInBill] [int] NULL) END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'SET IDENTITY_INSERT [dbo].[MatterLedger] ON INSERT INTO [dbo].[MatterLedger] ([MATTER], [BATCHNO], [PREF], [DATE], [REF], [NARR], [VALUED], [VALUEO], [VALUEC], [FEE], [PER], [YEAR], [ENTRYDATE], [CLIENT], [VALUECC], [VALUECD], [DEPOSITTYPE], [CURVALUED], [CURVALUEO], [CURVALUEC], [CURVALUECC], [CURVALUECD], [LREF], [BILLED], [BILLINGYEAR], [BILLINGPERIOD], [BILLINGDATE], [BilledOutlayValue], [InvoiceNo], [IncludeInBill]) SELECT RTRIM(ISNULL(ML.[MATTER], '''')) AS [MATTER], ISNULL(ML.[BATCHNO], 0) AS [BATCHNO], ML.[PREF] AS [PREF], ISNULL(ML.[DATE], ISNULL(MAT.[started], CONVERT(DATETIME, ''19000101''))) AS [DATE], RTRIM(ML.[REF]) AS [REF], RTRIM(ML.[NARR]) AS [NARR], ISNULL(ML.[VALUED], 0) AS [VALUED], ISNULL(ML.[VALUEO], 0) AS [VALUEO], ISNULL(ML.[VALUEC], 0) AS [VALUEC], RTRIM(ISNULL(ML.[FEE], '''')) AS [FEE], ML.[PER] AS [PER], ML.[YEAR] AS [YEAR], ML.[ENTRYDATE] AS [ENTRYDATE], RTRIM(ISNULL(ML.[CLIENT], '''')) AS [CLIENT], ISNULL(ML.[VALUECC], 0) AS [VALUECC], ISNULL(ML.[VALUECD], 0) AS [VALUECD], ML.[DEPOSITTYPE] AS [DEPOSITTYPE], ISNULL(ML.[CURVALUED], 0) AS [CURVALUED], ISNULL(ML.[CURVALUEO], 0) AS [CURVALUEO], ISNULL(ML.[CURVALUEC], 0) AS [CURVALUEC], ISNULL(ML.[CURVALUECC], 0) AS [CURVALUECC], ISNULL(ML.[CURVALUECD], 0) AS [CURVALUECD], ML.[LREF] AS [LREF], ML.[BILLED] AS [BILLED], ML.[BILLINGYEAR] AS [BILLINGYEAR], ML.[BILLINGPERIOD] AS [BILLINGPERIOD], ML.[BILLINGDATE] AS [BILLINGDATE], ISNULL(ML.[BilledOutlayValue], 0) AS [BilledOutlayValue], ML.[InvoiceNo] AS [InvoiceNo], ML.[IncludeInBill] AS [IncludeInBill] FROM [Keyhouse_TS].[dbo].[MatterLedgerCopy] ML INNER JOIN [dbo].[matters] MAT ON MAT.[CODE] = ML.[MATTER] SET IDENTITY_INSERT [dbo].[MatterLedger] OFF DECLARE @maxVal INT SELECT @maxVal = ISNULL(max(LREF),0)+1 from [dbo].[MatterLedger] DBCC CHECKIDENT(''MatterLedger'', RESEED, @maxVal)' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN ALTER TABLE [dbo].[MatterLedger] ADD CONSTRAINT [PK_MatterLedger] PRIMARY KEY CLUSTERED ([LREF]) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN CREATE NONCLUSTERED INDEX [KeyBilled] ON [dbo].[MatterLedger] ([MATTER] ASC, [BILLED] ASC, [DATE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN CREATE NONCLUSTERED INDEX [MatLed] ON [dbo].[MatterLedger] ([MATTER] ASC, [DATE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN CREATE NONCLUSTERED INDEX [MatLedAudit] ON [dbo].[MatterLedger] ([ENTRYDATE] ASC, [MATTER] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN CREATE NONCLUSTERED INDEX [MatLedC] ON [dbo].[MatterLedger] ([CLIENT] ASC, [DATE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') BEGIN CREATE NONCLUSTERED INDEX [MatLedBat] ON [dbo].[MatterLedger] ([BATCHNO] ASC, [PREF] ASC) ON [PRIMARY] END GO --IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixMatterLedger') --BEGIN -- DROP TABLE [Keyhouse_TS].[dbo].[MatterLedgerCopy] --END --GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'dtSearchIndexRegister' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[dtSearchIndexRegister] ([ID] [int] NOT NULL, [INDEXNAME] [char](50) NULL, [INDEXPATH] [char](255) NULL, [INDEXTYPE] [char](20) NULL, [INCLUDEBYDEFAULT] [tinyint] NULL, CONSTRAINT [PK_SearchIndex] PRIMARY KEY CLUSTERED ([ID] ASC) ON [PRIMARY]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'DTSI_KEYINDEXNAME' WHERE SO.[name] = 'dtSearchIndexRegister' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [DTSI_KEYINDEXNAME] ON [dbo].[dtSearchIndexRegister] ([INDEXNAME] ASC) ON [PRIMARY] END GO /************************************************* * * FIX CASECONTACTS TABLE - START * *************************************************/ IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'CASECODE' AND SC.[max_length] < 20 WHERE SO.[name] = 'CaseContacts' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[TableSchemaActions] ([DoThis]) VALUES('FixCaseContactsFully') END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN CREATE TABLE [dbo].[CaseContactsCopy] ([CASECODE] [varchar](20) NOT NULL, [CONTYPE] [varchar](12) NOT NULL, [CONNUM] [smallint] NOT NULL, [NAMECODE] [varchar](6) NULL, [SOLCODE] [varchar](6) NULL, [SOLREF] [varchar](50) NULL, [INSCODE] [varchar](6) NULL, [INSREF] [varchar](20) NULL, [COURTRECORDNO] [varchar](20) NULL, [HEARINGDATE] [datetime] NULL, [TIME] [varchar](10) NULL, [Relationship] [varchar](40) NULL, [Nominated] [bit] NULL, [AssignedContact] [decimal](18, 0) NULL, [ForCopy] [char](1) NULL, [CivilSumSDate] [datetime] NULL, [CivilBillSDate] [datetime] NULL, [SSumSDate] [datetime] NULL, [InstOrdSDate] [datetime] NULL, [ComOrdSDate] [datetime] NULL, [WarrantIssDate] [datetime] NULL, [SumAttSerDate] [datetime] NULL) END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN INSERT INTO [dbo].[CaseContactsCopy] ([CASECODE], [CONTYPE], [CONNUM], [NAMECODE], [SOLCODE], [SOLREF], [INSCODE], [INSREF], [COURTRECORDNO], [HEARINGDATE], [TIME], [Relationship], [Nominated], [AssignedContact], [ForCopy], [CivilSumSDate], [CivilBillSDate], [SSumSDate], [InstOrdSDate], [ComOrdSDate], [WarrantIssDate], [SumAttSerDate]) SELECT RTRIM(ISNULL([CASECODE], '')) AS [CASECODE], RTRIM(ISNULL([CONTYPE], '')) AS [CONTYPE], [CONNUM] AS [CONNUM], RTRIM([NAMECODE]) AS [NAMECODE], RTRIM([SOLCODE]) AS [SOLCODE], RTRIM([SOLREF]) AS [SOLREF], RTRIM([INSCODE]) AS [INSCODE], RTRIM([INSREF]) AS [INSREF], RTRIM([COURTRECORDNO]) AS [COURTRECORDNO], [HEARINGDATE] AS [HEARINGDATE], RTRIM([TIME]) AS [TIME], RTRIM([Relationship]) AS [Relationship], [Nominated] AS [Nominated], [AssignedContact] AS [AssignedContact], [ForCopy] AS [ForCopy], [CivilSumSDate] AS [CivilSumSDate], [CivilBillSDate] AS [CivilBillSDate], [SSumSDate] AS [SSumSDate], [InstOrdSDate] AS [InstOrdSDate], [ComOrdSDate] AS [ComOrdSDate], [WarrantIssDate] AS [WarrantIssDate], [SumAttSerDate] AS [SumAttSerDate] FROM [dbo].[CaseContacts] END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContactsCopy' AND SO.[type] = 'U') BEGIN DROP TABLE [dbo].[CaseContacts] END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContactsCopy' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[CaseContacts] ([CASECODE] [varchar](20) NOT NULL, [CONTYPE] [varchar](12) NOT NULL, [CONNUM] [smallint] NOT NULL, [NAMECODE] [varchar](6) NULL, [SOLCODE] [varchar](6) NULL, [SOLREF] [varchar](50) NULL, [INSCODE] [varchar](6) NULL, [INSREF] [varchar](20) NULL, [COURTRECORDNO] [varchar](20) NULL, [HEARINGDATE] [datetime] NULL, [TIME] [varchar](10) NULL, [Relationship] [varchar](40) NULL, [Nominated] [bit] NULL, [AssignedContact] [decimal](18, 0) NULL, [ForCopy] [char](1) NULL, [CivilSumSDate] [datetime] NULL, [CivilBillSDate] [datetime] NULL, [SSumSDate] [datetime] NULL, [InstOrdSDate] [datetime] NULL, [ComOrdSDate] [datetime] NULL, [WarrantIssDate] [datetime] NULL, [SumAttSerDate] [datetime] NULL) END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContactsCopy' AND SO.[type] = 'U') BEGIN INSERT INTO [dbo].[CaseContacts] ([CASECODE], [CONTYPE], [CONNUM], [NAMECODE], [SOLCODE], [SOLREF], [INSCODE], [INSREF], [COURTRECORDNO], [HEARINGDATE], [TIME], [Relationship], [Nominated], [AssignedContact], [ForCopy], [CivilSumSDate], [CivilBillSDate], [SSumSDate], [InstOrdSDate], [ComOrdSDate], [WarrantIssDate], [SumAttSerDate]) SELECT RTRIM(ISNULL([CASECODE], '')) AS [CASECODE], RTRIM(ISNULL([CONTYPE], '')) AS [CONTYPE], [CONNUM] AS [CONNUM], RTRIM([NAMECODE]) AS [NAMECODE], RTRIM([SOLCODE]) AS [SOLCODE], RTRIM([SOLREF]) AS [SOLREF], RTRIM([INSCODE]) AS [INSCODE], RTRIM([INSREF]) AS [INSREF], RTRIM([COURTRECORDNO]) AS [COURTRECORDNO], [HEARINGDATE] AS [HEARINGDATE], RTRIM([TIME]) AS [TIME], RTRIM([Relationship]) AS [Relationship], [Nominated] AS [Nominated], [AssignedContact] AS [AssignedContact], [ForCopy] AS [ForCopy], [CivilSumSDate] AS [CivilSumSDate], [CivilBillSDate] AS [CivilBillSDate], [SSumSDate] AS [SSumSDate], [InstOrdSDate] AS [InstOrdSDate], [ComOrdSDate] AS [ComOrdSDate], [WarrantIssDate] AS [WarrantIssDate], [SumAttSerDate] AS [SumAttSerDate] FROM [dbo].[CaseContactsCopy] END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContactsCopy' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseContacts] ADD CONSTRAINT [PK_CaseContacts] PRIMARY KEY CLUSTERED ([CASECODE] ASC, [CONTYPE] ASC, [CONNUM] ASC) ON [PRIMARY] END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContactsCopy' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IDX_Name] ON [dbo].[CaseContacts] ([NAMECODE] ASC, [CASECODE] ASC, [CONTYPE] ASC, [CONNUM] ASC) ON [PRIMARY] END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContactsCopy' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyAssignedContacts] ON [dbo].[CaseContacts] ([AssignedContact] ASC, [CASECODE] ASC, [NAMECODE] ASC) ON [PRIMARY] END END GO IF EXISTS (SELECT * FROM [dbo].[TableSchemaActions] WHERE [DoThis] = 'FixCaseContactsFully') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'CaseContacts' AND SO.[type] = 'U') BEGIN DROP TABLE [dbo].[CaseContactsCopy] END END GO IF NOT EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'FILENUM' WHERE SO.[name] = 'CaseContacts' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CaseContacts] ADD [FileNum] [int] DEFAULT(0) NOT NULL END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'COMMENT' AND ( SC.[max_length] < 1000 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'TimeEntryLogNew' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[TimeEntryLogNew] ALTER COLUMN [COMMENT] VARCHAR(1000) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'COMMENT' AND ( SC.[max_length] < 1000 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[TimeEntry] ALTER COLUMN [COMMENT] VARCHAR(1000) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'COMMENT' AND ( SC.[max_length] < 1000 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'TimeDayBook' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[TimeDayBook] ALTER COLUMN [COMMENT] VARCHAR(1000) END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[sysconstraints] SC INNER JOIN sys.[objects] CO ON CO.[object_id] = SC.[constid] AND CO.[name] = 'DF_TimeDayBook_RECIRR' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'TimeDayBook' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[TimeDayBook] ADD CONSTRAINT [DF_TimeDayBook_RECIRR] DEFAULT 'C' FOR [REC_IRR] END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Dept' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'templates' AND SO.[type] = 'U') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyDepartment' WHERE SO.[name] = 'Templates' AND SO.[type] = 'U') BEGIN DROP INDEX [Templates].[KeyDepartment] END UPDATE [dbo].[Templates] SET [Dept] = ISNULL([Dept], '') ALTER TABLE [dbo].[Templates] ALTER COLUMN [Dept] CHAR(3) NOT NULL ALTER TABLE [dbo].[Templates] ADD CONSTRAINT DF_Dept DEFAULT '' FOR [Dept] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyDepartment' WHERE SO.[name] = 'Templates' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeyDepartment] ON [dbo].[Templates] ([Dept] ASC, [WKCODE] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Narrative' AND ( SC.[max_length] < 1000 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BGDetail' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[BGDetail] ALTER COLUMN [Narrative] VARCHAR(1000) END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Narrative' AND ( SC.[max_length] < 1000 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BGGroups' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[BGGroups] ALTER COLUMN [Narrative] VARCHAR(1000) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'RGBColour' WHERE SO.[name] = 'FileColours' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[FileColours] ADD [RGBColour] INT DEFAULT -1 NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (select SC.* from sys.objects SO inner join sys.syscolumns SC on sc.[id] = SO.[object_id] where so.[name] = 'ActionFlag' and SC.[name] = 'Description') BEGIN ALTER TABLE ActionFlag ALTER COLUMN [Description] NVARCHAR(100) END GO /************************************************* * * FIX CASECONTACTS TABLE - END * *************************************************/ IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'GlobalOutlookSettings' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[GlobalOutlookSettings] ([StoreCaseCode] bit, [StoreClientName] bit, [StoreCaseDescription] bit, [AllowOverride] bit) END GO /**************************************************************************** * * NO matter should have a "Null" Started Date * ****************************************************************************/ IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Started' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN UPDATE MAT SET MAT.[Started] = ISNULL(MAT.[Started], ISNULL(CSM.[CSDATEENTERED_DATE], ISNULL(DM.[DATE], ISNULL(MM.[DATE], ISNULL(TM.[DATE], '19000101'))))) from [dbo].[matters] MAT LEFT OUTER JOIN [dbo].[CaseMaster] CSM on CSM.[CSCODE] = MAT.[Code] OUTER APPLY (SELECT TOP 1 [DATE] FROM [dbo].[diary] DIA WHERE DIA.[CASECODE] = MAT.[Code]) DM OUTER APPLY (SELECT TOP 1 [DATE] FROM [dbo].[MatterLedger] MAL WHERE MAL.[MATTER] = MAT.[Code]) MM OUTER APPLY (SELECT TOP 1 [DATE] FROM [dbo].[TimeEntry] TIE WHERE TIE.[MATTER] = MAT.[Code]) TM where MAT.[Started] IS NULL DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMatters' AND SO.[type] = 'V') BEGIN SET @COMMAND = 'DROP VIEW [dbo].[OpenClosedMatters]' EXEC (@COMMAND) END IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatters' AND SO.[type] = 'TF') BEGIN SET @COMMAND = 'DROP FUNCTION [dbo].[ky_NETOpenClosedMatters]' EXEC (@COMMAND) END SET @COMMAND = 'ALTER TABLE [dbo].[matters] ALTER COLUMN [Started] datetime not null' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM sys.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'started' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'closed' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'OpenClosedMatters' AND SO.[type] = 'V') BEGIN SET @COMMAND = 'DROP VIEW [dbo].[OpenClosedMatters]' EXEC (@COMMAND) END IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_NETOpenClosedMatters' AND SO.[type] = 'TF') BEGIN SET @COMMAND = 'DROP FUNCTION [dbo].[ky_NETOpenClosedMatters]' EXEC (@COMMAND) END SET @COMMAND = 'UPDATE CLM SET CLM.[started] = ''19000101'' FROM [dbo].[closed] CLM WHERE CLM.[started] IS NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[closed] ALTER COLUMN [started] datetime not null' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ISLOCK' WHERE SO.[name] = 'SystemUserDefinedFields') BEGIN ALTER TABLE [dbo].[SystemUserDefinedFields] ADD [ISLOCK] TINYINT END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DATEAPPOINTED' AND SC.[system_type_id] <> 61 WHERE SO.[name] = 'Officers' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[Officers] ALTER COLUMN [DATEAPPOINTED] DATETIME NULL END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DATERESIGNED' AND SC.[system_type_id] <> 61 WHERE SO.[name] = 'Officers' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[Officers] ALTER COLUMN [DATERESIGNED] DATETIME NULL END GO --Contact -> County IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'County' WHERE SO.[name] = 'Contacts') BEGIN ALTER TABLE Contacts ADD County NVARCHAR(100) END GO --Contact -> Postal Code IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'PostalCode' WHERE SO.[name] = 'Contacts') BEGIN ALTER TABLE Contacts ADD PostalCode NVARCHAR(100) END GO --CaseAssociatesName -> County IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'County' WHERE SO.[name] = 'CaseAssociatesNames') BEGIN ALTER TABLE CaseAssociatesNames ADD County NVARCHAR(100) END GO --CaseAssociatesName -> PostalCode IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'PostalCode' WHERE SO.[name] = 'CaseAssociatesNames') BEGIN ALTER TABLE CaseAssociatesNames ADD PostalCode NVARCHAR(100) END GO --CaseAssociateContacts -> County IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'County' WHERE SO.[name] = 'CaseAssociatesContacts') BEGIN ALTER TABLE CaseAssociatesContacts ADD County NVARCHAR(100) END GO --CaseAssociateContacts -> County IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'PostalCode' WHERE SO.[name] = 'CaseAssociatesContacts') BEGIN ALTER TABLE CaseAssociatesContacts ADD PostalCode NVARCHAR(100) END GO --ClientContacts -> County IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'County' WHERE SO.[name] = 'ClientContacts') BEGIN ALTER TABLE ClientContacts ADD County NVARCHAR(100) END GO --ClientContacts -> PostalCode IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'PostalCode' WHERE SO.[name] = 'ClientContacts') BEGIN ALTER TABLE ClientContacts ADD PostalCode NVARCHAR(100) END GO --ClientContacts -> PostalCode IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'FaxNumber' WHERE SO.[name] = 'ClientContacts') BEGIN ALTER TABLE ClientContacts ADD FaxNumber NVARCHAR(30) END GO DECLARE @FIXRML INT DECLARE @RML TABLE ([FEE] VARCHAR(10) NOT NULL, [MATTER] VARCHAR(20) NOT NULL, [DateField] DATETIME NOT NULL, [TIME] VARCHAR(10) NULL) DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] WHERE SO.[name] = 'RecentMatterList' AND ( ( SC.[name] = 'MATTER' AND SC.[max_length] < 20) OR ( SC.[name] = 'FEE' AND SC.[max_length] < 10) OR ( SC.[name] = 'DateField' AND SC.[is_nullable] = 1))) BEGIN SET @FIXRML = 1 END IF (@FIXRML = 1) BEGIN INSERT INTO @RML ([FEE], [MATTER], [DateField], [TIME]) SELECT RTRIM(ISNULL(RML.[FEE], '')) AS [FEE], RTRIM(ISNULL(RML.[MATTER], '')) AS [MATTER], ISNULL(RML.[DateField], CONVERT(DATETIME, '19000101')) AS [DateField], RTRIM(RML.[TIME]) AS [TIME] FROM [dbo].[RecentMatterList] RML END IF (@FIXRML = 1) BEGIN SET @COMMAND = 'DROP TABLE [dbo].[RecentMatterList]' EXEC (@COMMAND) END IF (@FIXRML = 1) BEGIN SET @COMMAND = ' CREATE TABLE [dbo].[RecentMatterList] ([FEE] VARCHAR(10) NOT NULL, [MATTER] VARCHAR(20) NOT NULL, [DateField] DATETIME NOT NULL, [TIME] VARCHAR(10) NULL, CONSTRAINT [PK_RecentMatterList] PRIMARY KEY CLUSTERED ([FEE] ASC, [MATTER] ASC) ON [PRIMARY]) ON [PRIMARY]' EXEC (@COMMAND) END IF (@FIXRML = 1) BEGIN INSERT INTO [dbo].[RecentMatterList] ([FEE], [MATTER], [DateField], [TIME]) SELECT RTRIM(ISNULL(RML.[FEE], '')) AS [FEE], RTRIM(ISNULL(RML.[MATTER], '')) AS [MATTER], ISNULL(RML.[DateField], CONVERT(DATETIME, '19000101')) AS [DateField], RTRIM(RML.[TIME]) AS [TIME] FROM @RML RML END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BUDGET1' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'Handlers' AND SO.[type] = 'U') BEGIN UPDATE HAN SET HAN.[BUDGET1] = ISNULL(HAN.[BUDGET1], 0), HAN.[BUDGET2] = ISNULL(HAN.[BUDGET2], 0), HAN.[BUDGET3] = ISNULL(HAN.[BUDGET3], 0), HAN.[BUDGET4] = ISNULL(HAN.[BUDGET4], 0), HAN.[BUDGET5] = ISNULL(HAN.[BUDGET5], 0), HAN.[BUDGET6] = ISNULL(HAN.[BUDGET6], 0), HAN.[BUDGET7] = ISNULL(HAN.[BUDGET7], 0), HAN.[BUDGET8] = ISNULL(HAN.[BUDGET8], 0), HAN.[BUDGET9] = ISNULL(HAN.[BUDGET9], 0), HAN.[BUDGET10] = ISNULL(HAN.[BUDGET10], 0), HAN.[BUDGET11] = ISNULL(HAN.[BUDGET11], 0), HAN.[BUDGET12] = ISNULL(HAN.[BUDGET12], 0) FROM [dbo].[Handlers] HAN ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET1] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET2] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET3] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET4] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET5] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET6] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET7] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET8] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET9] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET10] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET11] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [BUDGET12] decimal(13, 2) NOT NULL END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ACTUAL1' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'Handlers' AND SO.[type] = 'U') BEGIN UPDATE HAN SET HAN.[ACTUAL1] = ISNULL(HAN.[ACTUAL1], 0), HAN.[ACTUAL2] = ISNULL(HAN.[ACTUAL2], 0), HAN.[ACTUAL3] = ISNULL(HAN.[ACTUAL3], 0), HAN.[ACTUAL4] = ISNULL(HAN.[ACTUAL4], 0), HAN.[ACTUAL5] = ISNULL(HAN.[ACTUAL5], 0), HAN.[ACTUAL6] = ISNULL(HAN.[ACTUAL6], 0), HAN.[ACTUAL7] = ISNULL(HAN.[ACTUAL7], 0), HAN.[ACTUAL8] = ISNULL(HAN.[ACTUAL8], 0), HAN.[ACTUAL9] = ISNULL(HAN.[ACTUAL9], 0), HAN.[ACTUAL10] = ISNULL(HAN.[ACTUAL10], 0), HAN.[ACTUAL11] = ISNULL(HAN.[ACTUAL11], 0), HAN.[ACTUAL12] = ISNULL(HAN.[ACTUAL12], 0) FROM [dbo].[Handlers] HAN ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL1] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL2] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL3] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL4] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL5] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL6] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL7] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL8] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL9] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL10] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL11] decimal(13, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [ACTUAL12] decimal(13, 2) NOT NULL END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'NORECENTMATTERS' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'Handlers' AND SO.[type] = 'U') BEGIN UPDATE HAN SET HAN.[NORECENTMATTERS] = ISNULL(HAN.[NORECENTMATTERS], 0) FROM [dbo].[Handlers] HAN IF EXISTS (SELECT SOC.* FROM SYS.[objects] SO INNER JOIN sys.sysconstraints SC INNER JOIN sys.[objects] SOC ON SOC.[object_id] = SC.[constid] AND SOC.[name] = 'DF_Handlers_NORECENTMATTERS' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'handlers' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[handlers] DROP CONSTRAINT [DF_Handlers_NORECENTMATTERS] END ALTER TABLE [dbo].[handlers] ALTER COLUMN [NORECENTMATTERS] int NOT NULL END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'TEMPCALC' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'Handlers' AND SO.[type] = 'U') BEGIN UPDATE HAN SET HAN.[TEMPCALC] = ISNULL(HAN.[TEMPCALC], 0) FROM [dbo].[Handlers] HAN ALTER TABLE [dbo].[handlers] ALTER COLUMN [TEMPCALC] decimal(13, 2) NOT NULL END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'RATE1' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'Handlers' AND SO.[type] = 'U') BEGIN UPDATE HAN SET HAN.[RATE1] = ISNULL(HAN.[RATE1], 0), HAN.[RATE2] = ISNULL(HAN.[RATE2], 0), HAN.[RATE3] = ISNULL(HAN.[RATE3], 0), HAN.[RATE4] = ISNULL(HAN.[RATE4], 0), HAN.[RATE5] = ISNULL(HAN.[RATE5], 0) FROM [dbo].[Handlers] HAN ALTER TABLE [dbo].[handlers] ALTER COLUMN [RATE1] decimal(7, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [RATE2] decimal(7, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [RATE3] decimal(7, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [RATE4] decimal(7, 2) NOT NULL ALTER TABLE [dbo].[handlers] ALTER COLUMN [RATE5] decimal(7, 2) NOT NULL END GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL1', 'DF_Handlers_ACTUAL1', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL2', 'DF_Handlers_ACTUAL2', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL3', 'DF_Handlers_ACTUAL3', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL4', 'DF_Handlers_ACTUAL4', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL5', 'DF_Handlers_ACTUAL5', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL6', 'DF_Handlers_ACTUAL6', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL7', 'DF_Handlers_ACTUAL7', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL8', 'DF_Handlers_ACTUAL8', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL9', 'DF_Handlers_ACTUAL9', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL10', 'DF_Handlers_ACTUAL10', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL11', 'DF_Handlers_ACTUAL11', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'ACTUAL12', 'DF_Handlers_ACTUAL12', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET1', 'DF_Handlers_BUDGET1', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET2', 'DF_Handlers_BUDGET2', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET3', 'DF_Handlers_BUDGET3', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET4', 'DF_Handlers_BUDGET4', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET5', 'DF_Handlers_BUDGET5', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET6', 'DF_Handlers_BUDGET6', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET7', 'DF_Handlers_BUDGET7', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET8', 'DF_Handlers_BUDGET8', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET9', 'DF_Handlers_BUDGET9', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET10', 'DF_Handlers_BUDGET10', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET11', 'DF_Handlers_BUDGET11', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'BUDGET12', 'DF_Handlers_BUDGET12', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'NORECENTMATTERS', 'DF_Handlers_NORECENTMATTERS', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'RATE1', 'DF_Handlers_RATE1', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'RATE2', 'DF_Handlers_RATE2', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'RATE3', 'DF_Handlers_RATE3', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'RATE4', 'DF_Handlers_RATE4', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'RATE5', 'DF_Handlers_RATE5', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'handlers', 'TEMPCALC', 'DF_Handlers_TEMPCALC', '0' GO WHILE EXISTS (SELECT SC.[name], DC.[name] FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] NOT LIKE 'DF_TimeEntry_%' AND DC.[name] NOT LIKE 'CS_TimeEntry_%') BEGIN DECLARE @RogueConstraint VARCHAR(MAX) SELECT TOP 1 @RogueConstraint = DC.[name] FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] NOT LIKE 'DF_TimeEntry_%' AND DC.[name] NOT LIKE 'CS_TimeEntry_%' DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntry] DROP CONSTRAINT [' + @RogueConstraint + ']' EXEC (@COMMAND) END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_BilledAmount') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_BilledAmount] DEFAULT 0 FOR [BilledAmount] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_Billed') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_Billed] DEFAULT 0 FOR [Billed] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_Charge') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_Charge] DEFAULT 0 FOR [Charge] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_Docket') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_Docket] DEFAULT 0 FOR [Docket] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_Rate') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_Rate] DEFAULT 0 FOR [Rate] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_ShouldHave') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_ShouldHave] DEFAULT 0 FOR [ShouldHave] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_Task') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_Task] DEFAULT '' FOR [Task] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_Time') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_Time] DEFAULT 0 FOR [Time] END GO IF NOT EXISTS( SELECT TOP 1 1 FROM [sys].[objects] SO INNER JOIN [sys].[default_constraints] DC ON DC.[parent_object_id] = SO.[object_id] INNER JOIN [sys].[columns] SC ON SC.[default_object_id] = DC.[object_id] WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U' AND DC.[name] = 'DF_TimeEntry_TrackRef') BEGIN ALTER TABLE dbo.TimeEntry ADD CONSTRAINT [DF_TimeEntry_TrackRef] DEFAULT 0 FOR [TrackRef] END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BilledAmount' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE [dbo].[TimeEntry] SET [BilledAmount] = ISNULL([BilledAmount], 0)' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntry] ALTER COLUMN [BilledAmount] [decimal](10, 2) NOT NULL' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT TOP 1 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[ClientSettings]') AND type in (N'U')) BEGIN CREATE TABLE [dbo].[ClientSettings]( [SettingID] [int] IDENTITY(1,1) NOT NULL, [ClientCode] [nvarchar](20) NOT NULL, [Key] [nvarchar](100) NOT NULL, [Value] [nvarchar](max) NOT NULL, CONSTRAINT ClientSettings__SettingID PRIMARY KEY (SettingID)) END GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BALANCE', 'DF_Nominal_BALANCE', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'CURRENCYBAL', 'DF_Nominal_CURRENCYBAL', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BALANCEFWD', 'DF_Nominal_BALANCEFWD', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH1', 'DF_Nominal_MONTH1', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH2', 'DF_Nominal_MONTH2', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH3', 'DF_Nominal_MONTH3', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH4', 'DF_Nominal_MONTH4', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH5', 'DF_Nominal_MONTH5', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH6', 'DF_Nominal_MONTH6', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH7', 'DF_Nominal_MONTH7', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH8', 'DF_Nominal_MONTH8', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH9', 'DF_Nominal_MONTH9', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH10', 'DF_Nominal_MONTH10', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH11', 'DF_Nominal_MONTH11', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'MONTH12', 'DF_Nominal_MONTH12', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET1', 'DF_Nominal_BUDGET1', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET2', 'DF_Nominal_BUDGET2', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET3', 'DF_Nominal_BUDGET3', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET4', 'DF_Nominal_BUDGET4', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET5', 'DF_Nominal_BUDGET5', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET6', 'DF_Nominal_BUDGET6', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET7', 'DF_Nominal_BUDGET7', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET8', 'DF_Nominal_BUDGET8', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET9', 'DF_Nominal_BUDGET9', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET10', 'DF_Nominal_BUDGET10', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET11', 'DF_Nominal_BUDGET11', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'BUDGET12', 'DF_Nominal_BUDGET12', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR1', 'DF_Nominal_LASTYEAR1', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR2', 'DF_Nominal_LASTYEAR2', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR3', 'DF_Nominal_LASTYEAR3', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR4', 'DF_Nominal_LASTYEAR4', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR5', 'DF_Nominal_LASTYEAR5', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR6', 'DF_Nominal_LASTYEAR6', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR7', 'DF_Nominal_LASTYEAR7', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR8', 'DF_Nominal_LASTYEAR8', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR9', 'DF_Nominal_LASTYEAR9', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR10', 'DF_Nominal_LASTYEAR10', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR11', 'DF_Nominal_LASTYEAR11', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTYEAR12', 'DF_Nominal_LASTYEAR12', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'LASTNO', 'DF_Nominal_LASTNO', '0' GO EXEC [dbo].[ky_NETSPFixConstraint] 'Nominal', 'ACCRUAL', 'DF_Nominal_ACCRUAL', '0' GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BackgroundColour' WHERE SO.[name] = 'FileColours' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[FileColours] ADD [BackgroundColour] VARCHAR(30) DEFAULT 'Transparent' NOT NULL END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ForegroundColour' WHERE SO.[name] = 'FileColours' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[FileColours] ADD [ForegroundColour] VARCHAR(30) DEFAULT 'Black' NOT NULL END GO /* Remove duplicate User Settings */ IF EXISTS ( SELECT USS.[Handler], USS.[Key], COUNT(1) AS [TOTAL] FROM [dbo].[UserSettings] USS GROUP BY USS.[Handler], USS.[Key] HAVING COUNT(1) > 1) BEGIN DECLARE @UserSettings TABLE ([Handler] NVARCHAR(10), [Key] NVARCHAR(100), [Value] NVARCHAR(MAX)) INSERT INTO @UserSettings ([Handler], [Key], [Value]) SELECT USLAST.[Handler], USLAST.[Key], USLAST.[Value] FROM ( SELECT USS.[Handler], USS.[Key] FROM [dbo].[UserSettings] USS GROUP BY USS.[Handler], USS.[Key]) USC CROSS APPLY ( SELECT TOP 1 * FROM [dbo].[UserSettings] USL WHERE USL.[Handler] = USC.[Handler] AND USL.[Key] = USC.[Key] ORDER BY USL.[SettingID] DESC) USLAST DELETE [dbo].[UserSettings] INSERT INTO [dbo].[UserSettings] ([Handler], [Key], [Value]) SELECT NUS.[Handler], NUS.[Key], NUS.[Value] FROM @UserSettings NUS END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_HandlerKey' WHERE SO.[name] = 'UserSettings' AND SO.[type] = 'U') BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_HandlerKey] ON [dbo].[UserSettings] ([Handler] ASC, [Key] ASC) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'KHCtlForms' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[KHCtlForms] ([FormName] varchar(100) default('') not null, [FriendlyName] varchar(100) default('') not null, CONSTRAINT [PK_KHCtlForms] PRIMARY KEY CLUSTERED ([FormName] ASC)) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO WHERE SO.[name] = 'KHCtlMaster' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[KHCtlMaster] ([id] int identity(1, 1) not null, [FormName] varchar(100) default('') not null, [ControlName] varchar(100) default('') not null, [FriendlyName] varchar(100) default('') not null, [IsConfigurable] bit default(1) not null, [DisableMode] int default(0) not null, CONSTRAINT [PK_KHCtlMaster] PRIMARY KEY CLUSTERED ([id] ASC), CONSTRAINT [CS_DisableMode] CHECK ([DisableMode] IN (0, 1, 2))) ON [PRIMARY] END GO /*Re-defined below*/ --IF NOT EXISTS -- (SELECT * -- FROM sys.objects SO -- inner join sys.indexes SI -- ON SI.[object_id] = SO.[object_id] -- AND SI.[name] = 'IX_KHCtlMaster' -- WHERE SO.[name] = 'KHCtlMaster' -- AND SO.[type] = 'U') --BEGIN -- CREATE UNIQUE NONCLUSTERED INDEX -- [IX_KHCtlMaster] -- ON [dbo].[KHCtlMaster] -- ([FormName] ASC, -- [ControlName] ASC) -- INCLUDE ([IsConfigurable]) -- ON [PRIMARY] --END --GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM [sys].[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Deleted' WHERE SO.[name] = 'KHCtlMaster' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[KHCtlMaster] ADD [Deleted] BIT DEFAULT(0) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlMaster' WHERE SO.[name] = 'KHCtlMaster' AND SO.[type] = 'U') BEGIN IF NOT EXISTS (select 1 from sys.[objects] SO INNER JOIN sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlMaster' where SO.[name] = 'KHCtlMaster' and SC.[name] = 'Deleted') BEGIN DROP INDEX [dbo].[KHCtlMaster].[IX_KHCtlMaster] END END IF EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlMaster' WHERE SO.[name] = 'KHCtlMaster' AND SO.[type] = 'U') BEGIN IF NOT EXISTS (select 1 from sys.[objects] SO INNER JOIN sys.[indexes] SI INNER JOIN sys.[index_columns] IC INNER JOIN sys.[columns] SC ON SC.[object_id] = IC.[object_id] AND SC.[column_id] = IC.[column_id] ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlMaster' where SO.[name] = 'KHCtlMaster' and SC.[name] = 'FriendlyName') BEGIN DROP INDEX [dbo].[KHCtlMaster].[IX_KHCtlMaster] END END IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlMaster' WHERE SO.[name] = 'KHCtlMaster' AND SO.[type] = 'U') BEGIN BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_KHCtlMaster] ON [dbo].[KHCtlMaster] ([FormName] ASC, [ControlName] ASC) INCLUDE ([IsConfigurable], [FriendlyName], [Deleted]) ON [PRIMARY] END END GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[CurrentStages]')) DROP VIEW [dbo].[CurrentStages] GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueOutcomes]')) DROP VIEW [dbo].[RevenueOutcomes] GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStages]')) DROP VIEW [dbo].[RevenueStages] GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStagesGone]')) DROP VIEW [dbo].[RevenueStagesGone] GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueOutcomesSent]')) DROP VIEW [dbo].[RevenueOutcomesSent] GO IF EXISTS (SELECT * FROM sys.views WHERE object_id = OBJECT_ID(N'[dbo].[RevenueStatementsAandB]')) DROP VIEW [dbo].[RevenueStatementsAandB] GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'MatterCode' AND SC.[max_length] = 20 WHERE SO.[name] = 'MatterCheckChars' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'CREATE TABLE [dbo].[MCCFIX] ([MatterCode] VARCHAR(20) NOT NULL, [CheckCharacter] CHAR(1) NULL, [AddCheckCharacter] CHAR(1) NULL, [RecordID] int NOT NULL)' EXEC (@COMMAND) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'MatterCheckChars' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'INSERT INTO [dbo].[MCCFIX] ([MatterCode], [CheckCharacter], [AddCheckCharacter], [RecordID]) SELECT RTRIM(ISNULL(MCC.[MatterCode], '''')), MCC.[CheckCharacter], MCC.[AddCheckCharacter], MCC.[RecordID] FROM [dbo].[MatterCheckChars] MCC' EXEC (@COMMAND) SET @COMMAND = 'DROP TABLE [dbo].[MatterCheckChars]' EXEC (@COMMAND) END SET @COMMAND = 'CREATE TABLE [dbo].[MatterCheckChars] ([MatterCode] [VARCHAR](20) NOT NULL, [CheckCharacter] [char](1) NULL, [AddCheckCharacter] [char](1) NULL, [RecordID] [int] IDENTITY(1,1) NOT NULL, CONSTRAINT [PK_MatterCheckChars] PRIMARY KEY CLUSTERED ([RecordID] ASC) ON [PRIMARY]) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = 'SET IDENTITY_INSERT [dbo].[MatterCheckChars] ON INSERT INTO [dbo].[MatterCheckChars] ([MatterCode], [CheckCharacter], [AddCheckCharacter], [RecordID]) SELECT MCF.[MatterCode], MCF.[CheckCharacter], MCF.[AddCheckCharacter], MCF.[RecordID] FROM [dbo].[MCCFIX] MCF SET IDENTITY_INSERT [dbo].[MatterCheckChars] OFF DECLARE @maxVal INT SELECT @maxVal = ISNULL(max([RecordID]),0)+1 from [dbo].[MatterCheckChars] DBCC CHECKIDENT(''MatterCheckChars'', RESEED, @maxVal)' EXEC (@COMMAND) END GO /****** Object: Table [dbo].[ClientLink] Script Date: 10/07/2014 11:22:53 ******/ IF NOT EXISTS (SELECT * FROM [sys].[objects] SO WHERE SO.[name] = 'ClientLink' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[ClientLink] ([ClientCode] [char](10) NULL, [RecordID] [int] IDENTITY(1,1) NOT NULL, [ClientType] [char](1) NULL, CONSTRAINT [PK_ClientLink] PRIMARY KEY CLUSTERED ([RecordID] ASC) ON [PRIMARY]) ON [PRIMARY] END GO IF EXISTS (SELECT SC.* FROM SYS.[objects] SO INNER JOIN [sys].[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ClientCode' AND ( SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'ClientLink' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE [dbo].[ClientLink] SET [ClientCode] = ISNULL([ClientCode], '''')' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[ClientLink] ALTER COLUMN [ClientCode] VARCHAR(10) NOT NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE [dbo].[ClientLink] SET [ClientCode] = RTRIM([ClientCode])' EXEC (@COMMAND) END GO CREATE VIEW [dbo].[CurrentStages] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, LEFT(dbo.diary.CASECODE, 6) AS Expr1, dbo.diary.ACTIONID FROM dbo.diary INNER JOIN dbo.matters ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 0) AND (dbo.diary.STATUS = 0) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO CREATE VIEW [dbo].[RevenueOutcomes] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID, dbo.diary.TEXT1 FROM dbo.matters INNER JOIN dbo.ClientLink ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode INNER JOIN dbo.diary ON dbo.matters.Code = dbo.diary.CASECODE WHERE (dbo.diary.TxmSent = 'false') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONCODE = 'O01' OR dbo.diary.ACTIONCODE = 'O02' OR dbo.diary.ACTIONCODE = 'O03' OR dbo.diary.ACTIONCODE = 'O04' OR dbo.diary.ACTIONCODE = 'O05' OR dbo.diary.ACTIONCODE = 'O06' OR dbo.diary.ACTIONCODE = 'O07' OR dbo.diary.ACTIONCODE = 'O08' OR dbo.diary.ACTIONCODE = 'O19' OR dbo.diary.ACTIONCODE = 'O20' OR dbo.diary.ACTIONCODE = 'O21' OR dbo.diary.ACTIONCODE = 'O23' OR dbo.diary.ACTIONCODE = 'O24' OR dbo.diary.ACTIONCODE = 'O25' OR dbo.diary.ACTIONCODE = 'O28' OR dbo.diary.ACTIONCODE = 'O29' OR dbo.diary.ACTIONCODE = 'O34') AND (dbo.diary.ACTIONSTATUS = 'NA') AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO CREATE VIEW [dbo].[RevenueStages] AS SELECT TOP (100) PERCENT DIA.[CASECODE], DIA.[DATE], DIA.[STATUS], DIA.[ACTIONCODE], DIA.[ACTIONSTATUS], DIA.[TxmSent], DIA.[TxmDate], DIA.[TxmSeqNo], DIA.[ACTIONID], REPLACE(REPLACE(CONVERT(VARCHAR(MAX), DIA.[TEXT1]), CHAR(10), ' '), CHAR(13), ' ') AS [Text1] FROM dbo.[diary] DIA with (nolock) INNER JOIN dbo.[matters] MAT WITH (nolock) ON MAT.[Code] = DIA.[CASECODE] INNER JOIN dbo.[ClientLink] CLL WITH (nolock) ON CLL.[ClientCode] = MAT.[ClientCode] WHERE DIA.[TxmSent] = 'false' AND DIA.[STATUS] = 1 AND ( DIA.[ACTIONSTATUS] = '10' OR DIA.[ACTIONSTATUS] = '13' OR DIA.[ACTIONSTATUS] = '16' OR DIA.[ACTIONSTATUS] = '19' OR DIA.[ACTIONSTATUS] = '22' OR DIA.[ACTIONSTATUS] = '25' OR DIA.[ACTIONSTATUS] = '28' OR DIA.[ACTIONSTATUS] = '31' OR DIA.[ACTIONSTATUS] = '32' OR DIA.[ACTIONSTATUS] = '34' OR DIA.[ACTIONSTATUS] = '37' OR DIA.[ACTIONSTATUS] = '43' OR DIA.[ACTIONSTATUS] = '44' OR DIA.[ACTIONSTATUS] = '45' OR DIA.[ACTIONSTATUS] = '46' OR DIA.[ACTIONSTATUS] = '47' OR DIA.[ACTIONSTATUS] = '49' OR DIA.[ACTIONSTATUS] = '50' OR DIA.[ACTIONSTATUS] = '52' OR DIA.[ACTIONSTATUS] = '54' OR DIA.[ACTIONSTATUS] = '55' OR DIA.[ACTIONSTATUS] = '58' OR DIA.[ACTIONSTATUS] = '59' OR DIA.[ACTIONSTATUS] = '61' OR DIA.[ACTIONSTATUS] = '64' OR DIA.[ACTIONSTATUS] = '65' OR DIA.[ACTIONSTATUS] = '66' OR DIA.[ACTIONSTATUS] = '67' OR DIA.[ACTIONSTATUS] = '68' OR DIA.[ACTIONSTATUS] = '69' OR DIA.[ACTIONSTATUS] = '71' OR DIA.[ACTIONSTATUS] = '73' OR DIA.[ACTIONSTATUS] = '74' OR DIA.[ACTIONSTATUS] = '99') AND CLL.[ClientType] = 'R' ORDER BY DIA.[CASECODE], DIA.[DATE] GO CREATE VIEW [dbo].[RevenueStagesGone] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID FROM dbo.diary INNER JOIN dbo.matters ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 'true') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.diary.TxmSeqNo > 1) AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO CREATE VIEW [dbo].[RevenueOutcomesSent] AS SELECT TOP (100) PERCENT dbo.diary.CASECODE, dbo.diary.DATE, dbo.diary.STATUS, dbo.diary.ACTIONCODE, dbo.diary.ACTIONSTATUS, dbo.diary.TxmSent, dbo.diary.TxmDate, dbo.diary.TxmSeqNo, dbo.diary.ACTIONID FROM dbo.diary INNER JOIN dbo.matters ON dbo.diary.CASECODE = dbo.matters.Code INNER JOIN dbo.ClientLink ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode WHERE (dbo.diary.TxmSent = 'true') AND (dbo.diary.STATUS = 1) AND (dbo.diary.ACTIONSTATUS = '10' OR dbo.diary.ACTIONSTATUS = '13' OR dbo.diary.ACTIONSTATUS = '16' OR dbo.diary.ACTIONSTATUS = '19' OR dbo.diary.ACTIONSTATUS = '22' OR dbo.diary.ACTIONSTATUS = '25' OR dbo.diary.ACTIONSTATUS = '28' OR dbo.diary.ACTIONSTATUS = '31' OR dbo.diary.ACTIONSTATUS = '32' OR dbo.diary.ACTIONSTATUS = '34' OR dbo.diary.ACTIONSTATUS = '37' OR dbo.diary.ACTIONSTATUS = '43' OR dbo.diary.ACTIONSTATUS = '44' OR dbo.diary.ACTIONSTATUS = '45' OR dbo.diary.ACTIONSTATUS = '46' OR dbo.diary.ACTIONSTATUS = '47' OR dbo.diary.ACTIONSTATUS = '49' OR dbo.diary.ACTIONSTATUS = '50' OR dbo.diary.ACTIONSTATUS = '52' OR dbo.diary.ACTIONSTATUS = '54' OR dbo.diary.ACTIONSTATUS = '55' OR dbo.diary.ACTIONSTATUS = '58' OR dbo.diary.ACTIONSTATUS = '59' OR dbo.diary.ACTIONSTATUS = '61' OR dbo.diary.ACTIONSTATUS = '64' OR dbo.diary.ACTIONSTATUS = '65' OR dbo.diary.ACTIONSTATUS = '66' OR dbo.diary.ACTIONSTATUS = '67' OR dbo.diary.ACTIONSTATUS = '68' OR dbo.diary.ACTIONSTATUS = '69' OR dbo.diary.ACTIONSTATUS = '71' OR dbo.diary.ACTIONSTATUS = '73' OR dbo.diary.ACTIONSTATUS = '74' OR dbo.diary.ACTIONSTATUS = '99') AND (dbo.diary.CASECODE = '') AND (dbo.diary.TxmSeqNo > 1) AND (dbo.ClientLink.ClientType = 'R') ORDER BY dbo.diary.CASECODE, dbo.diary.DATE GO CREATE VIEW [dbo].[RevenueStatementsAandB] AS SELECT dbo.matters.ClientCode, ISNULL(dbo.matters.User3, '') AS User3, dbo.DebtCostingLedger.MATTERCODE AS CaseNo, (SELECT TOP (1) TEXT1 FROM dbo.CaseUDFAnswers WITH (nolock) WHERE (CASECODE = dbo.matters.Code) AND (UDFNAME = 'Courttype')) AS Court, ISNULL ((SELECT TOP (1) dbo.CaseAssociatesNames.NAME FROM dbo.CaseContacts WITH (nolock) INNER JOIN dbo.CaseAssociatesNames WITH (nolock) ON dbo.CaseContacts.NAMECODE = dbo.CaseAssociatesNames.CODE WHERE (dbo.CaseContacts.CONNUM = 1) AND (dbo.CaseContacts.CONTYPE = 'debtor') AND (dbo.CaseContacts.CASECODE = dbo.matters.Code)), '') AS TaxDebtor, ISNULL(dbo.DebtBreakDown.TaxHeadRegistration, '') AS Reg, dbo.TimeEntry.StageCode, (CASE (ISNUMERIC(TimeEntry.Stagecode)) WHEN 1 THEN (CASE WHEN (TimeEntry.Stagecode <= 13) THEN 'D' WHEN (TimeEntry.Stagecode > 32) THEN 'E' ELSE 'S' END) ELSE RIGHT(TimeEntry.Stagecode, 1) END) AS StatusCodesDesc, ISNULL(dbo.StatusCodes.DESCRIPTION, '') AS StatusCodesDescription, dbo.DebtCostingLedger.TYPE AS Paymenttype, (SELECT TOP (1) DateValue FROM dbo.CaseUDFAnswers AS CaseUDFAnswers_1 WITH (nolock) WHERE (CASECODE = dbo.matters.Code) AND (UDFNAME LIKE 'DateReferral')) AS ReferralDate, ISNULL(dbo.DebtCostingLedger.DATE, '') AS DateofPayment, dbo.DebtCostingLedger.DATE, dbo.DebtBreakDown.MatterCode AS FileRef, ISNULL(dbo.DebtBreakDown.TaxHead, '') AS TaxHead, dbo.DebtBreakDown.EndPeriod AS PeriodEnded, CASE ISNULL(dbo.DebtCostingLedger.PREMIUMSTATUS, dbo.DebtCostingLedger.INTERESTSTATUS) WHEN 'P' THEN 'P' ELSE 'F' END AS [F/P], dbo.DebtCostingLedger.PREMIUMSTATUS, dbo.DebtCostingLedger.INTERESTSTATUS, dbo.DebtCostingLedger.TYPE, dbo.TimeEntry.CHARGE, ISNULL(dbo.DebtAllocations.TaxAmount, 0) AS TaxAmount, ISNULL(dbo.DebtAllocations.InterestAmount, 0) AS Interest, dbo.DebtCostingLedger.PREMIUMPAID + dbo.DebtCostingLedger.INTERESTPAID AS TaxInterest, ISNULL(dbo.DebtCostingLedger.COSTSPAID, 0) AS Costs, dbo.DebtBreakDown.Sequence, dbo.DebtCostingLedger.POSTINGREF, dbo.DebtBreakDown.RecordID, ISNULL(dbo.DebtCostingLedger.Value, 0) AS value, dbo.TimeEntry.CHARGE * ISNULL((dbo.DebtAllocations.TaxAmount + dbo.DebtAllocations.InterestAmount) / NULLIF (dbo.DebtCostingLedger.PREMIUMPAID + dbo.DebtCostingLedger.INTERESTPAID, 0), 1) AS Commission, ISNULL(dbo.TimeEntry.CHARGE * ((dbo.DebtAllocations.TaxAmount + dbo.DebtAllocations.InterestAmount) / NULLIF (dbo.DebtCostingLedger.PREMIUMPAID + dbo.DebtCostingLedger.INTERESTPAID, 0)) / NULLIF (dbo.DebtAllocations.TaxAmount + dbo.DebtAllocations.InterestAmount, 0) * 100, 0) AS per, (CASE DebtCostingLedger.TYPE WHEN 'Receipt' THEN 'A' ELSE 'B' END) AS ReportType, dbo.StatusCodes.DESCRIPTION, dbo.matters.YourRef AS PPSN, ISNULL(dbo.DebtBreakDown.EndPeriod, '') AS EndPeriod, (SELECT TOP (1) CheckCharacter FROM dbo.MatterCheckChars WITH (nolock) WHERE (MatterCode = dbo.matters.Code)) AS CheckCharacter, (SELECT TOP (1) AddCheckCharacter FROM dbo.MatterCheckChars AS MatterCheckChars_1 WITH (nolock) WHERE (MatterCode = dbo.matters.Code)) AS AddCheckCharacter, dbo.matters.Code, dbo.matters.User2 AS KellyRef FROM dbo.matters WITH (nolock) INNER JOIN dbo.DebtCostingLedger WITH (nolock) ON dbo.matters.Code = dbo.DebtCostingLedger.MATTERCODE INNER JOIN dbo.ClientLink ON dbo.matters.ClientCode = dbo.ClientLink.ClientCode LEFT OUTER JOIN dbo.DebtAllocations WITH (nolock) LEFT OUTER JOIN dbo.DebtBreakDown WITH (nolock) ON dbo.DebtAllocations.BreakdownId = dbo.DebtBreakDown.RecordID ON dbo.DebtCostingLedger.POSTINGREF = dbo.DebtAllocations.PaymentId LEFT OUTER JOIN dbo.TimeEntry WITH (nolock) ON dbo.DebtCostingLedger.POSTINGREF = dbo.TimeEntry.DOCKET LEFT OUTER JOIN dbo.StatusCodes WITH (nolock) ON dbo.TimeEntry.StageCode = dbo.StatusCodes.CODE WHERE (dbo.DebtCostingLedger.TYPE = 'Receipt' OR dbo.DebtCostingLedger.TYPE = 'Direct Payment' OR dbo.DebtCostingLedger.TYPE = 'Credit') AND (dbo.ClientLink.ClientType = 'R') GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DATE' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'diary') BEGIN UPDATE DIA SET DIA.[DATE] = ISNULL(MAT.[started], '19000101') from [dbo].[diary] DIA LEFT OUTER JOIN [dbo].[matters] MAT ON MAT.[Code] = DIA.[CASECODE] where DIA.[DATE] IS NULL IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyAction' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyAction] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCase' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyCase] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseStatus' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyCaseStatus] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseDes2' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyCaseDes2] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseStatusTime' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyCaseStatusTime] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFeEarner' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyFeEarner] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyEmailDates' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyEmailDates] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyEmailDates2' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyEmailDates2] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFnCase' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyFnCase] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFeProcess' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyFeProcess] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyFeStatus' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyFeStatus] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyHighlighted' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyHighlighted] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyProcess' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyProcess] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyStatus' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyStatus] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyTeam' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyTeam] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyTeamCase' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyTeamCase] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyTypeCase' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyTypeCase] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_diary_On_ActionID_CaseCode' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KYNET_index_diary_On_ActionID_CaseCode] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID] END IF EXISTS (select * from sys.[objects] SO inner join sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeyCaseDateActionID' where SO.[name] = 'diary' and SO.[type] = 'U') BEGIN DROP INDEX [dbo].[diary].[KeyCaseDateActionID] END DECLARE @STAT VARCHAR(200) SELECT TOP 1 @STAT = ST.[name] FROM sys.[objects] SO INNER JOIN sys.[stats] ST ON ST.[object_id] = SO.[object_id] AND ( ST.[name] LIKE '_WA_Sys%' OR ST.[name] LIKE '_dta_stat%') WHERE SO.[name] = 'diary' WHILE (@STAT IS NOT NULL) BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP STATISTICS [dbo].[diary].[' + @STAT + ']' EXEC (@COMMAND) SET @STAT = NULL SELECT TOP 1 @STAT = ST.[name] FROM sys.[objects] SO INNER JOIN sys.[stats] ST ON ST.[object_id] = SO.[object_id] AND ( ST.[name] LIKE '_WA_Sys%' OR ST.[name] LIKE '_dta_stat%') WHERE SO.[name] = 'diary' END ALTER TABLE [dbo].[diary] ALTER COLUMN [DATE] datetime NOT NULL --BEGIN -- CREATE NONCLUSTERED INDEX -- [KeyAction] -- ON [dbo].[diary] -- ([ACTIONCODE] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyCase] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [DATE] ASC, -- [ACTIONCODE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyCaseStatus] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyCaseDes2] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- INCLUDE ([PUBLISH], -- [STATUS], -- [HIGHLIGHTED]) -- ON [PRIMARY] -- CREATE UNIQUE NONCLUSTERED INDEX -- [KeyCaseStatusTime] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [DYSTARTTIME] DESC, -- [ACTIONID] DESC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyFeEarner] -- ON [dbo].[diary] -- ([FNCODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyEmailDates] -- ON [dbo].[diary] -- ([EMAIL] ASC, -- [TxmDate] ASC, -- [DATE] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyEmailDates2] -- ON [dbo].[diary] -- ([EMAIL] ASC, -- [DATE] ASC, -- [TxmDate] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyFnCase] -- ON [dbo].[diary] -- ([FNCODE] ASC, -- [STATUS] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyFeProcess] -- ON [dbo].[diary] -- ([FNCODE] ASC, -- [PROCESSSTATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyFeStatus] -- ON [dbo].[diary] -- ([FNCODE] ASC, -- [STATUS] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyHighLighted] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [HIGHLIGHTED] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyProcess] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [PROCESSSTATUS] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyStatus] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyTeam] -- ON [dbo].[diary] -- ([TEAMCODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyTeamCase] -- ON [dbo].[diary] -- ([TEAMCODE] ASC, -- [STATUS] ASC, -- [CASECODE] ASC, -- [DATE] ASC, -- [ACTIONID] ASC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KeyTypeCase] -- ON [dbo].[diary] -- ([ACTIONTYPE] ASC, -- [DATE] DESC, -- [ACTIONID] DESC) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KYNET_index_diary_On_ActionID_CaseCode] -- ON [dbo].[diary] -- ([ACTIONID] ASC, -- [CASECODE] ASC) -- INCLUDE ([DATE], -- [STATUS], -- [ACTIONTYPE], -- [PROCESSTYPE], -- [FNCODE], -- [IMAGENO], -- [PRIORITY], -- [HIGHLIGHTED], -- [PROCESSSTATUS], -- [WORKPROCESS], -- [DELEGATIONSTATUS]) -- ON [PRIMARY] -- CREATE NONCLUSTERED INDEX -- [KYNET_index_diary_On_CaseCode_Status_Date_DYStartTime_ActionID] -- ON [dbo].[diary] -- ([CASECODE] ASC, -- [STATUS] ASC, -- [DATE] DESC, -- [DYSTARTTIME] DESC, -- [ACTIONID] DESC) -- INCLUDE ([ORGINALACTIONID]) -- ON [PRIMARY] --END END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DATEENTERED' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'DiaryAttachments') BEGIN UPDATE DAT SET DAT.[DATEENTERED] = ISNULL(DIA.[DATE], '19000101') from [dbo].[DiaryAttachments] DAT LEFT OUTER JOIN [dbo].[diary] DIA ON DIA.[ACTIONID] = DAT.[DIARYID] where DAT.[DATEENTERED] IS NULL ALTER TABLE [dbo].[DiaryAttachments] ALTER COLUMN [DATEENTERED] datetime NOT NULL END GO IF EXISTS (SELECT * FROM SYS.[objects] SO LEFT OUTER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'Deleted' WHERE SO.[name] = 'KHCtlGroups' AND SO.[type] = 'U' AND SC.[name] IS NULL) BEGIN DROP TABLE [dbo].[KHCtlGroups] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'KHCtlGroups' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[KHCtlGroups] ([id] INT NOT NULL, [GroupName] VARCHAR(100) CONSTRAINT [DF_GroupName] DEFAULT('') NOT NULL, [KeyhouseLock] bit CONSTRAINT [DF_KeyhouseLock] DEFAULT(1) NOT NULL, [Deleted] bit CONSTRAINT [DF_Deleted] DEFAULT(0) NOT NULL, CONSTRAINT [PK_KHCtlGroups] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlGroups' WHERE SO.[name] = 'KHCtlGroups' AND SO.[type] = 'U') BEGIN BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_KHCtlGroups] ON [dbo].[KHCtlGroups] ([GroupName] ASC) INCLUDE ([id], [KeyhouseLock], [Deleted]) ON [PRIMARY] END END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlIDGroups' WHERE SO.[name] = 'KHCtlGroups' AND SO.[type] = 'U') BEGIN BEGIN CREATE NONCLUSTERED INDEX [IX_KHCtlIDGroups] ON [dbo].[KHCtlGroups] ([id] ASC, [Deleted] ASC) INCLUDE ([GroupName], [KeyhouseLock]) ON [PRIMARY] END END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'KHCtlGroupControls' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[KHCtlGroupControls] ([id] INT IDENTITY(1, 1) NOT NULL, [groupid] INT NOT NULL, [masterid] INT NOT NULL, CONSTRAINT [PK_KHCtlGroupControls] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlGroups' WHERE SO.[name] = 'KHCtlGroupControls' AND SO.[type] = 'U') BEGIN BEGIN CREATE NONCLUSTERED INDEX [IX_KHCtlGroups] ON [dbo].[KHCtlGroupControls] ([groupid] ASC) INCLUDE ([masterid], [id]) ON [PRIMARY] END END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlMasters' WHERE SO.[name] = 'KHCtlGroupControls' AND SO.[type] = 'U') BEGIN BEGIN CREATE NONCLUSTERED INDEX [IX_KHCtlMasters] ON [dbo].[KHCtlGroupControls] ([masterid] ASC) INCLUDE ([groupid], [id]) ON [PRIMARY] END END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'KHCtlHandlers' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[KHCtlHandlers] ([id] INT IDENTITY(1, 1) NOT NULL, [Handler] VARCHAR(10) DEFAULT '' NOT NULL, [AllHandlers] int DEFAULT 0 NOT NULL, [groupid] INT NOT NULL, CONSTRAINT [PK_KHCtlHandlers] PRIMARY KEY CLUSTERED ([id]) ON [PRIMARY]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM sys.objects SO inner join sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_KHCtlHandlers' WHERE SO.[name] = 'KHCtlHandlers' AND SO.[type] = 'U') BEGIN BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_KHCtlHandlers] ON [dbo].[KHCtlHandlers] ([Handler] ASC, [AllHandlers] ASC, [groupid] ASC) ON [PRIMARY] END END GO --Make sure matters.closed can only contain 'Y' and 'N' IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[check_constraints] CS ON CS.[parent_object_id] = SO.[object_id] AND CS.[name] = 'CV_Closed' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN --renamed to CV_matters_Closed ALTER TABLE [dbo].[matters] DROP CONSTRAINT [CV_Closed] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[check_constraints] CS ON CS.[parent_object_id] = SO.[object_id] AND CS.[name] = 'CV_matters_Closed' WHERE SO.[name] = 'matters' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE [dbo].[matters] SET [Closed] = CASE WHEN RTRIM(ISNULL([Closed], ''Y'')) = ''Y'' THEN ''Y'' ELSE ''N'' END' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[matters] ADD CONSTRAINT [CV_matters_Closed] CHECK ([Closed] IN (''N'', ''Y''))' EXEC (@COMMAND) END GO --This is to ensure that the view is created fresh to check issue 1471 DELETE FROM HandlerControlSettings WHERE OwnerName = 'CaseDiary' GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'LinkedMatters' AND SO.[type] = 'U') BEGIN CREATE TABLE LinkedMatters ( RecordId INT IDENTITY(1,1), PrimeMatter NVARCHAR(20) NOT NULL, LinkedMatter NVARCHAR(20) NOT NULL, RelationShip NVARCHAR(100) NULL, CreatedDateTime DATETIME DEFAULT GETDATE() ) END GO IF EXISTS (select SC.* from SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DISCHARGEDATE' AND SC.[system_type_id] <> 61 where SO.[name] = 'Undertakings' and SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ADD [DCD] DATETIME NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE [dbo].[Undertakings] SET [DCD] = CASE WHEN ISNULL([DISCHARGEDATE], 0) = 0 THEN NULL ELSE DATEADD(DD, [DISCHARGEDATE], CONVERT(DATETIME, ''18001228'')) END, [DISCHARGEDATE] = NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ALTER COLUMN [DISCHARGEDATE] DATETIME NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE [dbo].[Undertakings] SET [DISCHARGEDATE] = [DCD], [DCD] = NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] DROP COLUMN [DCD]' EXEC (@COMMAND) END GO IF EXISTS (select SC.* from SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'STATUS' AND SC.[system_type_id] = 56 where SO.[name] = 'Undertakings' and SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'IF EXISTS (SELECT * FROM [dbo].[Undertakings] UND LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS ON UNS.[RECORDID] = UND.[Status] WHERE ISNULL(UND.[Status], 0) <> 0 AND UNS.[RECORDID] IS NULL) BEGIN SET IDENTITY_INSERT [dbo].[UndertakingStatus] ON INSERT INTO [dbo].[UndertakingStatus] ([RECORDID], [STATUSDESC]) SELECT DISTINCT UND.[Status], ''Unknown Status:'' + CONVERT(VARCHAR(10), UND.[Status]) FROM [dbo].[Undertakings] UND LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS ON UNS.[RECORDID] = UND.[Status] WHERE ISNULL(UND.[Status], 0) <> 0 AND UNS.[RECORDID] IS NULL SET IDENTITY_INSERT [dbo].[UndertakingStatus] OFF DECLARE @maxVal INT SELECT @maxVal = ISNULL(max(RECORDID),0)+1 from [dbo].[UndertakingStatus] DBCC CHECKIDENT(''UndertakingStatus'', RESEED, @maxVal) END' EXEC (@COMMAND) END GO IF EXISTS (select SC.* from SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'STATUS' AND SC.[system_type_id] <> 56 where SO.[name] = 'Undertakings' and SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ADD [DCS] INT NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE UND SET UND.[DCS] = UNS.[RecordID], UND.[Status] = NULL FROM [dbo].[Undertakings] UND LEFT OUTER JOIN [dbo].[UndertakingStatus] UNS ON UNS.[StatusDesc] = UND.[Status]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] ALTER COLUMN [STATUS] INT NULL' EXEC (@COMMAND) SET @COMMAND = 'UPDATE [dbo].[Undertakings] SET [STATUS] = [DCS], [DCS] = NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Undertakings] DROP COLUMN [DCS]' EXEC (@COMMAND) END GO IF EXISTS(select top 1 1 from sys.objects where name='CRREPORT') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='CRREPORT') AND name='notes') BEGIN ALTER TABLE CRREPORT ADD notes VARCHAR(5000) END END GO IF EXISTS(select top 1 1 from sys.objects where name='CRREPORT') BEGIN IF NOT EXISTS(SELECT TOP 1 1 FROM SYS.COLUMNS WHERE OBJECT_ID=(SELECT OBJECT_ID FROM SYS.OBJECTS WHERE name='CRREPORT') AND name='synopsis') BEGIN ALTER TABLE CRREPORT ADD synopsis VARCHAR(5000) END END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_Type' WHERE SO.[name] = 'CRReport' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_Type] ON [dbo].[CRReport] ([report_type] ASC) INCLUDE ([Reportid], [name]) END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_Name' WHERE SO.[name] = 'CRReport' AND SO.[type] = 'U') BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IX_Name] ON [dbo].[CRReport] ([name] ASC) INCLUDE ([Reportid], [filename]) END GO IF EXISTS (SELECT SC.* FROM sys.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BillDescriptions' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'BillDescriptions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' SELECT * INTO [dbo].[FIXBDSC] FROM [dbo].[BillDescriptions]' EXEC (@COMMAND) END GO IF EXISTS (SELECT SC.* FROM sys.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'BillDescriptions' AND SC.[system_type_id] <> 167 WHERE SO.[name] = 'BillDescriptions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP TABLE [dbo].[BillDescriptions]' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT * FROM sys.[objects] SO WHERE SO.[name] = 'BillDescriptions' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[BillDescriptions] ([NUMBER] [int] IDENTITY(1,1) NOT NULL, [BILLDESCRIPTIONS] [varchar](max) NULL, [SEARCHFIELD] [char](20) NULL, CONSTRAINT [PK_BillDescriptions] PRIMARY KEY CLUSTERED ([NUMBER] ASC) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] END GO IF NOT EXISTS (SELECT SI.* FROM sys.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'KeySearch' WHERE SO.[name] = 'BillDescriptions' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [KeySearch] ON [dbo].[BillDescriptions] ([SEARCHFIELD] ASC) ON [PRIMARY] END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'FIXBDSC' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' SET IDENTITY_INSERT [dbo].[BillDescriptions] ON INSERT INTO [dbo].[BillDescriptions] ([NUMBER], [BILLDESCRIPTIONS], [SEARCHFIELD]) SELECT [NUMBER], RTRIM(ISNULL(CONVERT(VARCHAR(MAX), [BILLDESCRIPTIONS]), '''')), [SEARCHFIELD] FROM [dbo].[FIXBDSC] SET IDENTITY_INSERT [dbo].[BillDescriptions] OFF DECLARE @maxVal INT SELECT @maxVal = ISNULL(max([NUMBER]),0)+1 from [dbo].[BillDescriptions] DBCC CHECKIDENT(''BillDescriptions'', RESEED, @maxVal)' EXEC (@COMMAND) SET @COMMAND = 'DROP TABLE [dbo].[FIXBDSC]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BGDetail' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[BGDetail] ALTER COLUMN [Matter] VARCHAR(20) NULL END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Brief' AND SO.[type] = 'U') BEGIN IF EXISTS (SELECT * FROM sys.[objects] SO WHERE SO.[name] = 'BriefContent' AND SO.[type] = 'V') BEGIN SET @COMMAND = 'DROP VIEW [dbo].[BriefContent]' EXEC (@COMMAND) END IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.indexes SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'BriefMatter' WHERE SO.[name] = 'Brief') BEGIN SET @COMMAND = 'DROP INDEX [Brief].[BriefMatter]' EXEC (@COMMAND) END DECLARE @CONST VARCHAR(100) SELECT @CONST = KC.[name] FROM SYS.[objects] SO INNER JOIN SYS.[key_constraints] KC ON KC.[parent_object_id] = SO.[object_id] AND KC.[type_desc] = 'UNIQUE_CONSTRAINT' WHERE SO.[name] = 'Brief' AND SO.[type] = 'U' WHILE @CONST IS NOT NULL BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[Brief] DROP CONSTRAINT [' + @CONST + ']' EXEC (@COMMAND) SET @CONST = NULL SELECT @CONST = KC.[name] FROM SYS.[objects] SO INNER JOIN SYS.[key_constraints] KC ON KC.[parent_object_id] = SO.[object_id] AND KC.[type_desc] = 'UNIQUE_CONSTRAINT' WHERE SO.[name] = 'Brief' AND SO.[type] = 'U' END SET @COMMAND = 'ALTER TABLE [dbo].[Brief] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [BriefMatter] ON [dbo].[Brief] ([MatterCode] ASC, [ID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' Create View [dbo].[BriefContent] with SchemaBinding As select BR.ID As BriefID, Convert(varchar, 1 - BS.CoverPage) + Substring(Convert(varchar, 10000 + BS.Sequence), 2, 4) + Substring(Convert(varchar, 10000 + BD.SortOrder), 2, 4) + Substring(Convert(varchar, 10000000 + BD.recordid), 2, 7) As KHSorter, BR.MatterCode, BR.Title, BR.Author, BR.Location, BS.CoverPage, BS.Sequence, BS.Section, BD.DocumentName, BD.TrackReference, BD.FileLocation, BD.FileDate, BS.ID, BD.SortOrder, BD.RecordId, BD.DocumentType, ( SELECT MAX(BDLAST.sortorder) FROM dbo.BriefDocuments BDLAST WHERE BDLAST.BriefID = BD.BriefID AND BDLAST.SectionID = BD.SectionID) As LastSO, CASE WHEN BS.CoverPage = 1 THEN '''' ELSE Char(65 + BS.Sequence - (SELECT MIN(BSW.[SEQUENCE]) FROM [dbo].[BriefSections] BSW WHERE BSW.[BriefID] = BR.[ID] AND BSW.CoverPage = 0)) END AS SectionLetter from dbo.brief BR INNER JOIN dbo.BriefSections BS ON BS.BriefID = BR.ID INNER JOIN dbo.BriefDocuments BD ON BD.BriefID = BR.ID AND BD.SectionID = BS.ID' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'CASECODE' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'diarytemp' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[diarytemp] ALTER COLUMN [CASECODE] VARCHAR(20) NOT NULL END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'COMPMATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'CompositeBillHeader' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[CompositeBillHeader] ALTER COLUMN [COMPMATTER] VARCHAR(20) NULL END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'FromMatter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'TimeEntryLog' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[TimeEntryLog] ALTER COLUMN [FromMatter] VARCHAR(20) NULL END GO DECLARE @TABLE VARCHAR(100) DECLARE @COLUMN VARCHAR(100) SET @TABLE = 'BGControl' SET @COLUMN = 'MATTER' IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = @COLUMN AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = @TABLE AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[' + @TABLE + '] ALTER COLUMN [' + @COLUMN + '] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATCODE' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'InterestTransactions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'InterestTransactions', 'ITN_KEYMAT' SET @COMMAND = 'ALTER TABLE [dbo].[InterestTransactions] ALTER COLUMN [MATCODE] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [ITN_KEYMAT] ON [dbo].[InterestTransactions] ([MATCODE] ASC, [DATEFROM] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'OutlayTransfer' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'OutlayTransfer', 'OLX_KEYMATTER' EXEC [dbo].[ky_NETSPDropExistingIndex] 'OutlayTransfer', 'KeyMatter' SET @COMMAND = 'ALTER TABLE [dbo].[OutlayTransfer] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [OLX_KEYMATTER] ON [dbo].[OutlayTransfer] ([MATTER] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'MatterTally' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'MatterTally', 'MATTERKEY' EXEC [dbo].[ky_NETSPDropExistingIndex] 'MatterTally', 'KEYHIGHLOW' SET @COMMAND = 'ALTER TABLE [dbo].[MatterTally] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [MATTERKEY] ON [dbo].[MatterTally] ([MATTER] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYHIGHLOW] ON [dbo].[MatterTally] ([MATTER] ASC, [HIGHLOW] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'SupplierLedger' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[SupplierLedger] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'TransferList' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'TransferList', 'KeyMatter' SET @COMMAND = 'ALTER TABLE [dbo].[TransferList] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[TransferList] ([MATTER] ASC, [BATCHNO] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'RBatchD' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[RBatchD] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillHeader', 'KeyBillNo' EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillHeader', 'KeyRelease' EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillHeader', 'KeyUser' EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillHeader', 'KeyOpen' DECLARE @UC VARCHAR(150) select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'BillHeader' WHILE NOT (@UC IS NULL) BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHeader] DROP CONSTRAINT [' + @UC + ']' EXEC (@COMMAND) SET @UC = NULL select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'BillHeader' END SET @COMMAND = 'ALTER TABLE [dbo].[BillHeader] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyBillNo] ON [dbo].[BillHeader] ([MATTER] ASC, [BILLNO] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyRelease] ON [dbo].[BillHeader] ([RELEASED] ASC, [USER] ASC, [DATE] ASC, [MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyUser] ON [dbo].[BillHeader] ([USER] ASC, [DATE] ASC, [MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyOpen] ON [dbo].[BillHeader] ([OPENINVOICE] ASC, [MATTER] ASC, [BILLNO] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'BillDetails' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillDetails', 'KeyMatter' EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillDetails', 'KeyBillno' EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillDetails', 'KeyBillCopy' SET @COMMAND = 'ALTER TABLE [dbo].[BillDetails] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[BillDetails] ([MATTER] ASC, [DRAFTNO] ASC, [BILLNO] ASC, [LINENO] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyBillno] ON [dbo].[BillDetails] ([MATTER] ASC, [BILLNO] ASC, [LINENO] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyBillCopy] ON [dbo].[BillDetails] ([MATTER] ASC, [BILLNO] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'DebtorsLedger' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'DebtorsLedger', 'DebtMat' SET @COMMAND = 'ALTER TABLE [dbo].[DebtorsLedger] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [DebtMat] ON [dbo].[DebtorsLedger] ([MATTER] ASC, [DATE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'BillFeeBreakDown' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillFeeBreakDown', 'KeyMatter' EXEC [dbo].[ky_NETSPDropExistingIndex] 'BillFeeBreakDown', 'KeyBillNo' SET @COMMAND = 'ALTER TABLE [dbo].[BillFeeBreakDown] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[BillFeeBreakDown] ([MATTER] ASC, [DRAFTNO] ASC, [BILLNO] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyBillNo] ON [dbo].[BillFeeBreakDown] ([MATTER] ASC, [BILLNO] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'CompositeBillFees' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeBillFees', 'KeyBillNo' EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeBillFees', 'KeyDate' SET @COMMAND = 'ALTER TABLE [dbo].[CompositeBillFees] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyBillNo] ON [dbo].[CompositeBillFees] ([COMPBILLNO] ASC, [MATTER] ASC, [FE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyDate] ON [dbo].[CompositeBillFees] ([COMPBILLNO] ASC, [MATTER] ASC, [FE] ASC, [DATE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'CompositeBillDetail' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeBillDetail', 'KEYFE' EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeBillDetail', 'KEYMATTERLINK' DECLARE @UC VARCHAR(150) select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'CompositeBillDetail' WHILE NOT (@UC IS NULL) BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[CompositeBillDetail] DROP CONSTRAINT [' + @UC + ']' EXEC (@COMMAND) SET @UC = NULL select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'CompositeBillDetail' END SET @COMMAND = 'ALTER TABLE [dbo].[CompositeBillDetail] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYFE] ON [dbo].[CompositeBillDetail] ([COMPBILLNO] ASC, [FEEEARNER] ASC, [MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYMATTERLINK] ON [dbo].[CompositeBillDetail] ([MATTER] ASC, [COMPBILLNO] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'MemorsiedBatchH' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[MemorsiedBatchH] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BatchH' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'BatchH', 'BHMatter' SET @COMMAND = 'ALTER TABLE [dbo].[BatchH] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [BHMatter] ON [dbo].[BatchH] ([MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BatchDetails' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'BatchDetails', 'BDMatter' SET @COMMAND = 'ALTER TABLE [dbo].[BatchDetails] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [BDMatter] ON [dbo].[BatchDetails] ([MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'MultiBatchD' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'MultiBatchD', 'BDMatter' SET @COMMAND = 'ALTER TABLE [dbo].[MultiBatchD] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [BDMatter] ON [dbo].[MultiBatchD] ([MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'MemorisedBatchD' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[MemorisedBatchD] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'TimeEntryLogNew' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntryLogNew] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'NominalLedger' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[NominalLedger] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167 OR SC.[is_nullable] = 1) WHERE SO.[name] = 'MatterLedgerClearDown' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'MatterLedgerClearDown', 'MatLed' EXEC [dbo].[ky_NETSPDropExistingIndex] 'MatterLedgerClearDown', 'MatLedAudit' SET @COMMAND = 'ALTER TABLE [dbo].[MatterLedgerClearDown] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [MatLed] ON [dbo].[MatterLedgerClearDown] ([MATTER] ASC, [DATE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [MatLedAudit] ON [dbo].[MatterLedgerClearDown] ([ENTRYDATE] ASC, [MATTER] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'RBatchH' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[RBatchH] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'CompositeBillBreakDown' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeBillBreakDown', 'KeyOutlay' EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeBillBreakDown', 'KeyMatter' SET @COMMAND = 'ALTER TABLE [dbo].[CompositeBillBreakDown] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyOutlay] ON [dbo].[CompositeBillBreakDown] ([COMPBILLNO] ASC, [MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[CompositeBillBreakDown] ([COMPBILLNO] ASC, [MATTER] ASC, [DATE] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'PendingOutlay' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'PendingOutlay', 'KeyMatter' SET @COMMAND = 'ALTER TABLE [dbo].[PendingOutlay] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[PendingOutlay] ([MATTER] ASC, [DATE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'WorkInProgressReport' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'WorkInProgressReport', 'KEYMATTER' EXEC [dbo].[ky_NETSPDropExistingIndex] 'WorkInProgressReport', 'KeyFEMatter' SET @COMMAND = 'ALTER TABLE [dbo].[WorkInProgressReport] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYMATTER] ON [dbo].[WorkInProgressReport] ([MATTER] ASC, [FECODE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyFEMatter] ON [dbo].[WorkInProgressReport] ([FECODE] ASC, [MATTER] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'InterestLedger' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) DECLARE @IDX VARCHAR(MAX) SELECT TOP 1 @IDX = SI.[name] FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[is_primary_key] <> 1 WHERE SO.[name] = 'InterestLedger' AND SO.[type] = 'U' WHILE NOT (@IDX IS NULL) BEGIN SET @COMMAND = 'DROP INDEX [dbo].[InterestLedger].[' + @IDX + ']' EXEC (@COMMAND) SET @IDX = NULL SELECT TOP 1 @IDX = SI.[name] FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[is_primary_key] <> 1 WHERE SO.[name] = 'InterestLedger' AND SO.[type] = 'U' END SET @COMMAND = 'ALTER TABLE [dbo].[InterestLedger] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE INDEX [ILG_KEYMATDATE] ON [dbo].[InterestLedger] ([MATTER] ASC, [DATE] ASC)' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'ChequeRequisitionDetail' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'ChequeRequisitionDetail', 'KeyMatter' SET @COMMAND = 'ALTER TABLE [dbo].[ChequeRequisitionDetail] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatter] ON [dbo].[ChequeRequisitionDetail] ([MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'ChequesForPrinting' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[ChequesForPrinting] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'CompositeFEBreakdown' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DECLARE @CONSTRAINT VARCHAR(150) SELECT TOP 1 @CONSTRAINT = SOC.[name] FROM SYS.[objects] SO INNER JOIN sys.sysconstraints SC inner join sys.[objects] SOC ON SOC.[object_id] = SC.[constid] AND SOC.[type_desc] = ''PRIMARY_KEY_CONSTRAINT'' ON SC.[id] = SO.[object_id] WHERE SO.[name] = ''CompositeFEBreakdown'' AND SO.[type] = ''U'' IF NOT (@CONSTRAINT IS NULL) BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ''ALTER TABLE [dbo].[CompositeFEBreakdown] DROP CONSTRAINT ['' + @CONSTRAINT + '']'' EXEC (@COMMAND) END' EXEC (@COMMAND) EXEC [dbo].[ky_NETSPDropExistingIndex] 'CompositeFEBreakdown', 'KEYFEEEARNER' SET @COMMAND = 'ALTER TABLE [dbo].[CompositeFEBreakdown] ALTER COLUMN [MATTER] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' ALTER TABLE [dbo].[CompositeFEBreakdown] ADD CONSTRAINT [PK__CompositeFEBreakdown] PRIMARY KEY CLUSTERED ([COMPBILLNO] ASC, [MATTER] ASC, [FE] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYFEEEARNER] ON [dbo].[CompositeFEBreakdown] ([COMPBILLNO] ASC, [FE] ASC, [MATTER] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTER' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'CostTransGathering' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'CostTransGathering', 'BDMatter' SET @COMMAND = 'ALTER TABLE [dbo].[CostTransGathering] ALTER COLUMN [MATTER] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [BDMatter] ON [dbo].[CostTransGathering] ([MATTER] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTERCODE' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'FileManagerItems' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE [dbo].[FileManagerItems] SET [MATTERCODE] = ISNULL([MATTERCODE], '''')' EXEC (@COMMAND) DECLARE @UC VARCHAR(150) select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'FileManagerItems' WHILE NOT (@UC IS NULL) BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[FileManagerItems] DROP CONSTRAINT [' + @UC + ']' EXEC (@COMMAND) SET @UC = NULL select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'FileManagerItems' END EXEC [dbo].[ky_NETSPDropExistingIndex] 'FileManagerItems', 'KEYMATTER' EXEC [dbo].[ky_NETSPDropExistingIndex] 'FileManagerItems', 'KEYType' EXEC [dbo].[ky_NETSPDropExistingIndex] 'FileManagerItems', 'KeyFE' EXEC [dbo].[ky_NETSPDropExistingIndex] 'FileManagerItems', 'KEYLOCATION' SET @COMMAND = 'ALTER TABLE [dbo].[FileManagerItems] ALTER COLUMN [MATTERCODE] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYMATTER] ON [dbo].[FileManagerItems] ([MATTERCODE] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYType] ON [dbo].[FileManagerItems] ([ITEMTYPE] ASC, [CLIENTCODE] ASC, [MATTERCODE] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyFE] ON [dbo].[FileManagerItems] ([FEEARNER] ASC, [ITEMTYPE] ASC, [CLIENTCODE] ASC, [MATTERCODE] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KEYLOCATION] ON [dbo].[FileManagerItems] ([LOCATION] ASC, [ITEMTYPE] ASC, [CLIENTCODE] ASC, [MATTERCODE] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE UNIQUE NONCLUSTERED INDEX [UQ_FileManagerItems] ON [dbo].[FileManagerItems] ([NUMBER] ASC, [ITEMCODE] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'ReserveLedger' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'ReserveLedger', 'IX_LitReserve' SET @COMMAND = 'ALTER TABLE [dbo].[ReserveLedger] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [IX_LitReserve] ON [dbo].[ReserveLedger] ([MatterCode] ASC, [Id] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'DebtBreakDown' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[DebtBreakDown] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'TestTable' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[TestTable] DROP CONSTRAINT [PK_TestTable]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[TestTable] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' ALTER TABLE [dbo].[TestTable] ADD CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED ([MatterCode] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'zDelAmendDetails' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[zDelAmendDetails] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'zDelAmendHead' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[zDelAmendHead] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'zDelOutcomes' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[zDelOutcomes] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'ToMatter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'TimeEntryLog' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntryLog] ALTER COLUMN [ToMatter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'SourceMatter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Templates' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Templates] ALTER COLUMN [SourceMatter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterRef' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Alarms' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'Alarms', 'AlarmsByMatter' SET @COMMAND = 'ALTER TABLE [dbo].[Alarms] ALTER COLUMN [MatterRef] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [AlarmsByMatter] ON [dbo].[Alarms] ([MatterRef] ASC, [ID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTERCODE' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'DebtCostingLedger' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'DebtCostingLedger', 'KeyMatter' DECLARE @UC VARCHAR(150) select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'DebtCostingLedger' WHILE NOT (@UC IS NULL) BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[DebtCostingLedger] DROP CONSTRAINT [' + @UC + ']' EXEC (@COMMAND) SET @UC = NULL select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'DebtCostingLedger' END SET @COMMAND = 'ALTER TABLE [dbo].[DebtCostingLedger] ALTER COLUMN [MATTERCODE] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MATTERREF' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'InterestCalcHistory' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) EXEC [dbo].[ky_NETSPDropExistingIndex] 'InterestCalcHistory', 'MatterKey' SET @COMMAND = 'ALTER TABLE [dbo].[InterestCalcHistory] ALTER COLUMN [MATTERREF] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [MatterKey] ON [dbo].[InterestCalcHistory] ([MATTERREF] ASC, [DATE] ASC, [RECORDID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO --SAM4 IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'DraftBills' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[DraftBills] ALTER COLUMN [Matter] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BillingGuideFormattedTEMP' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[BillingGuideFormattedTEMP] ALTER COLUMN [Matter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'RecOSTransactions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[RecOSTransactions] ALTER COLUMN [Matter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'RecTransactions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[RecTransactions] ALTER COLUMN [Matter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BillingGuideFormated' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[BillingGuideFormated] ALTER COLUMN [Matter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'ChequeRequisitions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[ChequeRequisitions] ALTER COLUMN [Matter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Matter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Cheques' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Cheques] ALTER COLUMN [Matter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BillingGuide' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP INDEX [dbo].[BillingGuide].[KeyMatterOrder]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[BillingGuide] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatterOrder] ON [dbo].[BillingGuide] ([MatterCode] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'MattersEstimatedFees' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP INDEX [dbo].[MattersEstimatedFees].[MatterEstimatedFeesDates]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[MattersEstimatedFees] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [MatterEstimatedFeesDates] ON [dbo].[MattersEstimatedFees] ([MatterCode] ASC, [EstimatedBillDate] ASC, [RecordID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Memorised' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Memorised] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'MatterChargeOutRates' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP INDEX [dbo].[MatterChargeOutRates].[KeyFeMatterChargeOutRates]' EXEC (@COMMAND) SET @COMMAND = 'DROP INDEX [dbo].[MatterChargeOutRates].[KeyMatterChargeOutRates]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[MatterChargeOutRates] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE UNIQUE NONCLUSTERED INDEX [KeyFeMatterChargeOutRates] ON [dbo].[MatterChargeOutRates] ([FeCode] ASC, [MatterCode] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE UNIQUE NONCLUSTERED INDEX [KeyMatterChargeOutRates] ON [dbo].[MatterChargeOutRates] ([MatterCode] ASC, [FeCode] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'PossibleReferrals' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[PossibleReferrals] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Results' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Results] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'MattersCheckChars' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) DECLARE @UC VARCHAR(150) select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'MattersCheckChars' WHILE NOT (@UC IS NULL) BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[MattersCheckChars] DROP CONSTRAINT [' + @UC + ']' EXEC (@COMMAND) SET @UC = NULL select TOP 1 @UC = SO2.[name] from SYS.[objects] SO INNER JOIN sys.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[type_desc] = N'UNIQUE_CONSTRAINT' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'MattersCheckChars' END SET @COMMAND = ' IF EXISTS (SELECT TOP 1 1 from sys.sysconstraints SC inner join sys.objects SO ON SO.[object_id] = SC.[constid] AND SO.[name] = ''UQ_MattersCheckChars_MC'') BEGIN ALTER TABLE [dbo].[MattersCheckChars] DROP CONSTRAINT [UQ_MattersCheckChars_MC] END' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[MattersCheckChars] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' ALTER TABLE [dbo].[MattersCheckChars] ADD CONSTRAINT [UQ_MattersCheckChars_MC] UNIQUE NONCLUSTERED ([MATTERCODE]) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Allocations' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[Allocations] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BillCompMatter' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[BillCompMatter] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO DECLARE @INDEX VARCHAR(MAX) SELECT TOP 1 @INDEX = SI.[name] FROM SYS.[objects] SO INNER JOIN sys.[indexes] SI inner join sys.index_columns IC ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] LIKE '_dta_in%' WHERE SO.[name] = 'Transactions' WHILE NOT (@INDEX IS NULL) BEGIN SET @INDEX = 'DROP INDEX [dbo].[Transactions].[' + @INDEX + ']' EXEC (@INDEX) SET @INDEX = NULL SELECT TOP 1 @INDEX = SI.[name] FROM SYS.[objects] SO INNER JOIN sys.[indexes] SI inner join sys.index_columns IC ON IC.[object_id] = SI.[object_id] AND IC.[index_id] = SI.[index_id] ON SI.[object_id] = SO.[object_id] AND SI.[name] LIKE '_dta_in%' WHERE SO.[name] = 'Transactions' END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'Transactions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'DROP INDEX [dbo].[Transactions].[KeyMatterOrder]' EXEC (@COMMAND) SET @COMMAND = 'DROP INDEX [dbo].[Transactions].[KeyTranRecChequeStatus]' EXEC (@COMMAND) SET @COMMAND = 'DROP INDEX [dbo].[Transactions].[KeyTranRecTypeBatch]' EXEC (@COMMAND) SET @COMMAND = 'DROP INDEX [dbo].[Transactions].[KeyTranRecTypePosted]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[Transactions] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyMatterOrder] ON [dbo].[Transactions] ([MatterCode] ASC, [TransDate] ASC, [Seq] ASC, [XnID] ASC) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyTranRecChequeStatus] ON [dbo].[Transactions] ([RecType] ASC, [ChequeStatus] ASC, [Posted] ASC) INCLUDE ([XnID], [BatchNo], [XnType], [LineType], [Destination], [TypeCode], [NominalCode], [TransferCosts], [TransferFrom], [Branch], [PostRef], [ParentRef], [TransRef], [TransDate], [ClearType], [ClearDate], [WriteDownDate], [Team], [FeeEarner], [MatterCode], [Supplier], [Narrative], [EntryCurrency], [TransTotal], [DrCr], [NominalValue], [CurrencyNominal], [DebtorsValue], [DebtorsValueOS], [CurrencyDebtors], [CurrDebtorsOS], [OutlayValue], [CurrencyOutlay], [OutlayCode], [OpenInvoice], [OutlayBill], [ClientCurrent], [CurrencyCurent], [ClientDeposit], [CurrencyDeposit], [SupplierValue], [SupplierValueOS], [PostingPeriod], [PostingYear], [Payee], [NVNetValue], [CurrencyNVNet], [VNetValue], [CurrencyVNet], [VATValue], [CurrencyVAT], [VATRate], [FeesBilled], [FeesOS], [CurrFees], [CurrFeesOS], [VATonFees], [VATonFeesOS], [CurrVATonFees], [CurrVATFeesOS], [OutlayNV], [OutlayNVOS], [CurrNVOutlay], [CurrNVOlayOS], [OutlayV], [OutlayVOS], [CurrVOlay], [CurrVOlayOS], [VATonOutlay], [VATOutlayOS], [CurrVATonOlay], [CurrVATOlayOS], [MiscBilled], [MiscOS], [CurrMiscBilled], [CurrMiscOS], [VATonMisc], [VATMiscOS], [CurrVATonMisc], [CurrVATMiscOS], [VATBilled], [CurrVATBill], [ThirdParty], [EntryDate], [UpdateDate], [EnteredBy], [UpdateBy], [Requisition], [ReceiptNo], [DraftNo], [MemXnid], [Authorised], [AuthorDate], [UserBatch], [CorrectionInd], [CorrectDate], [CorrectUser], [CorrectID], [Reconciliation], [Reconciled], [WriteOffRemainder], [AllocPending], [PreBilledOutlays], [BilledOutlay], [Seq], [ReturnPreBilled], [PreBilledV], [PreBilledNV], [OffSetOutlay], [OtherRef], [OutlayBilledDate]) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyTranRecTypeBatch] ON [dbo].[Transactions] ([RecType] ASC, [TypeCode] ASC, [UserBatch] ASC, [Posted] ASC) INCLUDE ([XnID], [BatchNo], [XnType], [LineType], [Destination], [ChequeStatus], [NominalCode], [TransferCosts], [TransferFrom], [Branch], [PostRef], [ParentRef], [TransRef], [TransDate], [ClearType], [ClearDate], [WriteDownDate], [Team], [FeeEarner], [MatterCode], [Supplier], [Narrative], [EntryCurrency], [TransTotal], [DrCr], [NominalValue], [CurrencyNominal], [DebtorsValue], [DebtorsValueOS], [CurrencyDebtors], [CurrDebtorsOS], [OutlayValue], [CurrencyOutlay], [OutlayCode], [OpenInvoice], [OutlayBill], [ClientCurrent], [CurrencyCurent], [ClientDeposit], [CurrencyDeposit], [SupplierValue], [SupplierValueOS], [PostingPeriod], [PostingYear], [Payee], [NVNetValue], [CurrencyNVNet], [VNetValue], [CurrencyVNet], [VATValue], [CurrencyVAT], [VATRate], [FeesBilled], [FeesOS], [CurrFees], [CurrFeesOS], [VATonFees], [VATonFeesOS], [CurrVATonFees], [CurrVATFeesOS], [OutlayNV], [OutlayNVOS], [CurrNVOutlay], [CurrNVOlayOS], [OutlayV], [OutlayVOS], [CurrVOlay], [CurrVOlayOS], [VATonOutlay], [VATOutlayOS], [CurrVATonOlay], [CurrVATOlayOS], [MiscBilled], [MiscOS], [CurrMiscBilled], [CurrMiscOS], [VATonMisc], [VATMiscOS], [CurrVATonMisc], [CurrVATMiscOS], [VATBilled], [CurrVATBill], [ThirdParty], [EntryDate], [UpdateDate], [EnteredBy], [UpdateBy], [Requisition], [ReceiptNo], [DraftNo], [MemXnid], [Authorised], [AuthorDate], [CorrectionInd], [CorrectDate], [CorrectUser], [CorrectID], [Reconciliation], [Reconciled], [WriteOffRemainder], [AllocPending], [PreBilledOutlays], [BilledOutlay], [Seq], [ReturnPreBilled], [PreBilledV], [PreBilledNV], [OffSetOutlay], [OtherRef], [OutlayBilledDate]) ON [PRIMARY]' EXEC (@COMMAND) SET @COMMAND = ' CREATE NONCLUSTERED INDEX [KeyTranRecTypePosted] ON [dbo].[Transactions] ([RecType] ASC, [TypeCode] ASC, [Posted] ASC) INCLUDE ([XnID], [BatchNo], [XnType], [LineType], [Destination], [ChequeStatus], [NominalCode], [TransferCosts], [TransferFrom], [Branch], [PostRef], [ParentRef], [TransRef], [TransDate], [ClearType], [ClearDate], [WriteDownDate], [Team], [FeeEarner], [MatterCode], [Supplier], [Narrative], [EntryCurrency], [TransTotal], [DrCr], [NominalValue], [CurrencyNominal], [DebtorsValue], [DebtorsValueOS], [CurrencyDebtors], [CurrDebtorsOS], [OutlayValue], [CurrencyOutlay], [OutlayCode], [OpenInvoice], [OutlayBill], [ClientCurrent], [CurrencyCurent], [ClientDeposit], [CurrencyDeposit], [SupplierValue], [SupplierValueOS], [PostingPeriod], [PostingYear], [Payee], [NVNetValue], [CurrencyNVNet], [VNetValue], [CurrencyVNet], [VATValue], [CurrencyVAT], [VATRate], [FeesBilled], [FeesOS], [CurrFees], [CurrFeesOS], [VATonFees], [VATonFeesOS], [CurrVATonFees], [CurrVATFeesOS], [OutlayNV], [OutlayNVOS], [CurrNVOutlay], [CurrNVOlayOS], [OutlayV], [OutlayVOS], [CurrVOlay], [CurrVOlayOS], [VATonOutlay], [VATOutlayOS], [CurrVATonOlay], [CurrVATOlayOS], [MiscBilled], [MiscOS], [CurrMiscBilled], [CurrMiscOS], [VATonMisc], [VATMiscOS], [CurrVATonMisc], [CurrVATMiscOS], [VATBilled], [CurrVATBill], [ThirdParty], [EntryDate], [UpdateDate], [EnteredBy], [UpdateBy], [Requisition], [ReceiptNo], [DraftNo], [MemXnid], [Authorised], [AuthorDate], [UserBatch], [CorrectionInd], [CorrectDate], [CorrectUser], [CorrectID], [Reconciliation], [Reconciled], [WriteOffRemainder], [AllocPending], [PreBilledOutlays], [BilledOutlay], [Seq], [ReturnPreBilled], [PreBilledV], [PreBilledNV], [OffSetOutlay], [OtherRef], [OutlayBilledDate]) ON [PRIMARY]' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'BillHead' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[BillHead] ALTER COLUMN [MatterCode] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'xTransactions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[xTransactions] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'MatterCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'zTransactions' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[zTransactions] ALTER COLUMN [MatterCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'PCODE' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'mattersold' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[mattersold] ALTER COLUMN [PCODE] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'Code' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'mattersold' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[mattersold] ALTER COLUMN [Code] VARCHAR(20) NOT NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'CompBillingMatter' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'mattersold' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[mattersold] ALTER COLUMN [CompBillingMatter] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'CaseCode' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'zExcelImport' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[zExcelImport] ALTER COLUMN [CaseCode] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = so.[object_id] AND SC.[name] = 'LINKEDBY' AND ( SC.[max_length] <> 20 OR SC.[system_type_id] <> 167) WHERE SO.[name] = 'DiaryLinks' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[DiaryLinks] ALTER COLUMN [LINKEDBY] VARCHAR(20) NULL' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'NominalReportSeq' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[NominalReportSeq] ([CODE] [char](4) NOT NULL, [DESC] [char](40) NULL, [PB] [char](1) NOT NULL, CONSTRAINT PK__NominalReportSeq__5FD33367 PRIMARY KEY CLUSTERED ([PB] ASC, [CODE] ASC) ON [PRIMARY]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'ReserveLedger' AND SO.[type] = 'U') BEGIN CREATE TABLE [dbo].[ReserveLedger] ([Id] [int] IDENTITY(1,1) NOT NULL, [MatterCode] [varchar](20) NOT NULL, [CreatedDate] [datetime] NOT NULL, [AppUser] [varchar](50) NULL, [GeneralDamages] [decimal](18, 2) NULL, [GeneralComment] [varchar](300) NULL, [SpecialDamages] [decimal](18, 2) NULL, [SpecialComment] [varchar](300) NULL, [FutureSpecials] [decimal](18, 2) NULL, [FurtureComment] [varchar](300) NULL, [PropertyDamage] [decimal](18, 2) NULL, [PropertyComment] [varchar](300) NULL, [OtherDamages] [decimal](18, 2) NULL, [OtherComment] [varchar](300) NULL, [ContributoryNegligence] [decimal](18, 2) NULL, [ContributoryComment] [varchar](300) NULL, [CoDefendantLiability] [decimal](18, 2) NULL, [CoDefendantComment] [varchar](300) NULL, [Costs] [decimal](18, 2) NULL, [CostsComment] [varchar](300) NULL, CONSTRAINT [PK_LitReserve] PRIMARY KEY CLUSTERED ([Id] ASC) ON [PRIMARY]) ON [PRIMARY] END GO IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IX_LitReserve' WHERE SO.[name] = 'ReserveLedger' AND SO.[type] = 'U') BEGIN CREATE NONCLUSTERED INDEX [IX_LitReserve] ON [dbo].[ReserveLedger] ([MatterCode] ASC, [Id] ASC) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'YOURREF' AND SC.[max_length] < 100 WHERE SO.[name] = 'BillHeader' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER TABLE [dbo].[BillHeader] ALTER COLUMN [YOURREF] VARCHAR(100) NULL' EXEC (@COMMAND) END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'Settings') BEGIN IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_KeyName' WHERE SO.[name] = 'Settings') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' DELETE [DEL] FROM ( SELECT [SET].[KeyName], MIN([SET].[SettingID]) AS [FirstID] FROM [dbo].[Settings] [SET] GROUP BY [SET].[KeyName] HAVING COUNT(1) > 1) [DUPS] INNER JOIN [dbo].[Settings] [DEL] ON [DEL].[KeyName] = [DUPS].[KeyName] AND [DEL].[SettingID] <> [DUPS].[FirstID]' EXEC (@COMMAND) SET @COMMAND = ' CREATE UNIQUE NONCLUSTERED INDEX [IDX_KeyName] ON [dbo].[Settings] ([KeyName] ASC) INCLUDE ([SettingID]) ON [PRIMARY]' EXEC (@COMMAND) END END GO IF NOT EXISTS (SELECT * FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'MaxClCode') BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) VALUES('MaxClCode', '6') END ELSE BEGIN INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) VALUES('MaxClCode', '8') END END GO IF NOT EXISTS (SELECT * FROM [dbo].[Settings] [SET] WHERE [SET].[KeyName] = 'MaxMatNum') BEGIN IF [dbo].[ISSAM4]() = 0 BEGIN INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) VALUES('MaxMatNum', '4') END ELSE BEGIN INSERT INTO [dbo].[Settings] ([KeyName], [KeyValue]) VALUES('MaxMatNum', '8') END END GO SET NOCOUNT ON UPDATE TAC SET TAC.[WKTCODE] = 'SYS' FROM [dbo].[TemplateActions] TAC WHERE ISNULL(TAC.[ACTIONCODE], '') = 'DB01' AND ISNULL(TAC.[WKTCODE], '') <> 'SYS' SET NOCOUNT OFF GO IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'ActionTypeDescription' WHERE SO.[name] = 'DiaryDelActionType' AND SO.[type] = 'U') BEGIN ALTER TABLE [dbo].[DiaryDelActionType] ALTER COLUMN [ActionTypeDescription] NCHAR(40) NULL END GO DECLARE @RedoActionTypes BIT DECLARE @NewActionTypes TABLE ([ActionType] NCHAR(1), [ActionTypeDescription] NCHAR(40)) SET @RedoActionTypes = 0 IF EXISTS ( SELECT DT.[ActionType] FROM [dbo].[DiaryDelActionType] DT GROUP BY DT.[ActionType] HAVING COUNT(1) > 1) BEGIN SET @RedoActionTypes = 1 END SELECT @RedoActionTypes = CASE WHEN COUNT(1) < 12 THEN 1 ELSE @RedoActionTypes END FROM [dbo].[DiaryDelActionType] IF NOT EXISTS ( SELECT TOP 1 1 FROM [dbo].[DiaryDelActionType] DT WHERE DT.[ActionType] = 'E') BEGIN SET @RedoActionTypes = 1 END IF (@RedoActionTypes = 1) BEGIN INSERT INTO @NewActionTypes ([ActionType], [ActionTypeDescription]) SELECT ACT.[ActionType], ACD.[ActionTypeDescription] FROM ( SELECT DT.[ActionType] FROM [dbo].[DiaryDelActionType] DT GROUP BY DT.[ActionType]) ACT CROSS APPLY ( SELECT TOP 1 DT2.[ActionTypeDescription] FROM [dbo].[DiaryDelActionType] DT2 WHERE DT2.[ActionType] = ACT.[ActionType] ORDER BY DT2.[RecordId]) ACD DELETE [dbo].[DiaryDelActionType] INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM @NewActionTypes NAT INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'A' AS [ActionType], 'Action' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'N' AS [ActionType], 'Note' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'P' AS [ActionType], 'Appointment' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'R' AS [ActionType], 'Reminder' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'E' AS [ActionType], 'Email' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'T' AS [ActionType], 'Phone Message' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'D' AS [ActionType], 'Dictation' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'U' AS [ActionType], 'Undertaking' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'S' AS [ActionType], 'Statute Date' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'C' AS [ActionType], 'Critical Date' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'O' AS [ActionType], 'Court Date' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL INSERT INTO [dbo].[DiaryDelActionType] ([ActionType], [ActionTypeDescription]) SELECT NAT.[ActionType], NAT.[ActionTypeDescription] FROM ( SELECT 'M' AS [ActionType], 'Scanned Post/Mail' As [ActionTypeDescription]) NAT LEFT OUTER JOIN [dbo].[DiaryDelActionType] DT ON DT.[ActionType] = NAT.[ActionType] WHERE DT.[ActionType] IS NULL END GO IF EXISTS (SELECT * FROM sys.[objects] SO WHERE SO.[name] = 'DiaryDelActionType' AND SO.[type] = 'U') BEGIN IF NOT EXISTS (SELECT * FROM sys.[objects] SO INNER JOIN sys.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_ActionType' WHERE SO.[name] = 'DiaryDelActionType' AND SO.[type] = 'U') BEGIN CREATE UNIQUE NONCLUSTERED INDEX [IDX_ActionType] ON [dbo].[DiaryDelActionType] ([ActionType]) ON [PRIMARY] END END GO IF EXISTS (SELECT * FROM sys.[objects] SO INNER JOIN SYS.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'IncludeInBill' AND SC.[is_nullable] = 1 WHERE SO.[name] = 'TimeEntry' AND SO.[type] = 'U') BEGIN DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'UPDATE [dbo].[TimeEntry] SET [IncludeInBill] = ISNULL([IncludeInBill], 1)' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntry] ALTER COLUMN [IncludeInBill] INT NOT NULL' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntry] ADD CONSTRAINT [DF_TimeEntry_IncludeInBill] DEFAULT (1) FOR [IncludeInBill]' EXEC (@COMMAND) SET @COMMAND = 'ALTER TABLE [dbo].[TimeEntry] ADD CONSTRAINT [CS_TimeEntry_IncludeInBill] CHECK ([IncludeInBill] IN (0, 1, 2))' EXEC (@COMMAND) END GO IF NOT EXISTS (SELECT * FROM [dbo].[CRReport] CRR WHERE CRR.[report_type] = 'B') BEGIN IF EXISTS (SELECT * FROM [dbo].[CRReport] CRR WHERE CRR.[name] = 'Bill Layout') BEGIN UPDATE CRR SET CRR.[report_type] = 'B' FROM [dbo].[CRReport] CRR WHERE CRR.[name] = 'Bill Layout' END END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT TOP 1 * FROM SYS.[objects] SO WHERE SO.[name] = 'ky_FNDefaultBillLayoutReport' AND SO.[type] = 'FN') BEGIN IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[name] = 'DF_BillHeader_DefaultBillLayoutReportID' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'BillHeader') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHeader] DROP CONSTRAINT [DF_BillHeader_DefaultBillLayoutReportID]' EXEC (@COMMAND) END IF EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[name] = 'DF_BillHead_DefaultBillLayoutReportID' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'BillHead') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHead] DROP CONSTRAINT [DF_BillHead_DefaultBillLayoutReportID]' EXEC (@COMMAND) END DROP FUNCTION [dbo].[ky_FNDefaultBillLayoutReport] END GO CREATE FUNCTION [dbo].[ky_FNDefaultBillLayoutReport] () RETURNS INT AS BEGIN DECLARE @ReportID INT SELECT @ReportID = CRR.[ReportID] FROM [dbo].[CRReport] CRR WHERE CRR.[report_type] = 'B' AND CRR.[name] = 'Bill Layout' IF (@ReportID IS NULL) BEGIN SELECT TOP 1 @ReportID = CRR.[ReportID] FROM [dbo].[CRReport] CRR WHERE CRR.[report_type] = 'B' END IF (@ReportID IS NULL) BEGIN SELECT TOP 1 @ReportID = CRR.[ReportID] FROM [dbo].[CRReport] CRR WHERE CRR.[name] = 'Bill Layout' END IF (@ReportID IS NULL) BEGIN SET @ReportID = 0 END RETURN @ReportID END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'BillHeader') BEGIN IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DefaultBillLayoutReportID' WHERE SO.[name] = 'BillHeader') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHeader] ADD [DefaultBillLayoutReportID] INT CONSTRAINT [DF_BillHeader_DefaultBillLayoutReportID] DEFAULT [dbo].[ky_FNDefaultBillLayoutReport]() NOT NULL' EXEC (@COMMAND) END IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[name] = 'DF_BillHeader_DefaultBillLayoutReportID' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'BillHeader') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHeader] ADD CONSTRAINT [DF_BillHeader_DefaultBillLayoutReportID] DEFAULT ([dbo].[ky_FNDefaultBillLayoutReport]()) FOR [DefaultBillLayoutReportID]' EXEC (@COMMAND) END END GO DECLARE @COMMAND VARCHAR(MAX) IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'BillHead') BEGIN IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN sys.[columns] SC ON SC.[object_id] = SO.[object_id] AND SC.[name] = 'DefaultBillLayoutReportID' WHERE SO.[name] = 'BillHead') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHead] ADD [DefaultBillLayoutReportID] INT CONSTRAINT [DF_BillHead_DefaultBillLayoutReportID] DEFAULT [dbo].[ky_FNDefaultBillLayoutReport]() NOT NULL' EXEC (@COMMAND) END IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[sysconstraints] SC INNER JOIN SYS.[objects] SO2 ON SO2.[object_id] = SC.[constid] AND SO2.[name] = 'DF_BillHead_DefaultBillLayoutReportID' ON SC.[id] = SO.[object_id] WHERE SO.[name] = 'BillHead') BEGIN SET @COMMAND = 'ALTER TABLE [dbo].[BillHead] ADD CONSTRAINT [DF_BillHead_DefaultBillLayoutReportID] DEFAULT ([dbo].[ky_FNDefaultBillLayoutReport]()) FOR [DefaultBillLayoutReportID]' EXEC (@COMMAND) END END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_diarycase' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_diaryCase] ON [dbo].[diary] ([CASECODE] ASC, [DATE] ASC) INCLUDE ([PUBLISH], [STATUS], [HIGHLIGHTED], [ACTIONCODE], [ACTIONID], [DYSTARTTIME], [PROCESSSTATUS]) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_DraftBillNo' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_DraftBillNo] ON [dbo].[diary] ([DRAFTBILLNO] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_Action' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_Action] ON [dbo].[diary] ([ACTIONCODE] ASC, [CASECODE] ASC, [DATE] ASC, [ACTIONID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_EmailDates' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_EmailDates] ON [dbo].[diary] ([EMAIL] ASC) INCLUDE ([TxmDate], [DATE]) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_FeeEarner' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_FeeEarner] ON [dbo].[diary] ([FNCODE] ASC, [DATE] ASC, [ACTIONID] ASC) INCLUDE ([PROCESSSTATUS], [STATUS], [CASECODE]) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_OrginalId' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_OrginalId] ON [dbo].[diary] ([ORGINALACTIONID] ASC, [ACTIONID] ASC) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_Team' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_Team] ON [dbo].[diary] ([TEAMCODE] ASC, [STATUS] ASC, [DATE] DESC, [ACTIONID] DESC) INCLUDE ([CASECODE]) ON [PRIMARY]' EXEC (@COMMAND) END GO DECLARE @COMMAND VARCHAR(MAX) IF NOT EXISTS (SELECT * FROM SYS.[objects] SO INNER JOIN SYS.[indexes] SI ON SI.[object_id] = SO.[object_id] AND SI.[name] = 'IDX_TypeCase' WHERE SO.[name] = 'diary' AND SO.[type] = 'U') BEGIN SET @COMMAND = 'CREATE NONCLUSTERED INDEX [IDX_TypeCase] ON [dbo].[diary] ([ACTIONTYPE] ASC, [DATE] DESC, [ACTIONID] DESC) ON [PRIMARY]' EXEC (@COMMAND) END GO /********************************************************************************************* * * PLEASE KEEP THIS BLOCK ALWAYS AT THE VERY END OF THIS FILE - START * (insert your additions immediately before this comment) * *********************************************************************************************/ IF NOT EXISTS (SELECT * FROM [dbo].[TableSchemaActions]) BEGIN DROP DATABASE [Keyhouse_TS] END GO IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = 'TableSchemaActions' AND SO.[type] = 'U') BEGIN DROP TABLE [dbo].[TableSchemaActions] END GO --SET IMPLICIT_TRANSACTIONS ON --GO DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = 'ALTER DATABASE [' + DB_NAME() + '] SET RECOVERY FULL' EXEC (@COMMAND) GO /************************************************************************************************** * * PLEASE KEEP THIS BLOCK ALWAYS AT THE VERY END OF THIS FILE * THE *ENTIRE* BLOCK, from the START comment (one PageUp up) * up to and including this END comment, not just this END comment itself ... * Cheers.... Pino * * - END * **************************************************************************************************/ UPDATE SKL SET SKL.[COMMENT] = '002 TableSchema.SQL' FROM [dbo].[KYScriptLog] SKL WHERE SKL.[MajorVersion] = 5 AND SKL.[MinorVersion] = 1 AND SKL.[Build] = 1 AND SKL.[Revision] = 165 AND SKL.[COMMENT] = '002 TableSchema.SQL **FAILED**' GO SET NOEXEC OFF SET NOCOUNT OFF DECLARE @COMMAND VARCHAR(MAX) SET @COMMAND = ' IF EXISTS (SELECT * FROM SYS.[objects] SO WHERE SO.[name] = ''TableSchemaActions'' AND SO.[type] = ''U'') BEGIN DROP TABLE [dbo].[TableSchemaActions] END' EXEC (@COMMAND) GO