Facebook
From Michael P, 7 Years ago, written in T-SQL.
Embed
Download Paste or View Raw
Hits: 248
  1. USE [EDWAdmin];
  2. GO
  3.  
  4. GO
  5. ALTER DATABASE [EDWAdmin]
  6.     SET SINGLE_USER
  7.     WITH ROLLBACK IMMEDIATE
  8. GO
  9.  
  10. -- If we need to modify this proc, do it in here as an ALTER IF EXISTS
  11. PRINT('Create stored procedure [Admin].[PrintErrorAndThrowException]');
  12.  
  13. IF NOT EXISTS(SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[Admin].[PrintErrorAndThrowException]') AND type IN ( N'P', N'PC' ))
  14. BEGIN
  15.         EXEC('
  16.                 CREATE PROCEDURE [Admin].PrintErrorAndThrowException
  17.                 AS
  18.                         DECLARE @ExceptionMessage NVARCHAR(1000); -- THE VALID MAX LENGTH FOR EXCEPTION MESSAGE IS 1000
  19.                         DECLARE @ErrorMessage NVARCHAR(1000)
  20.                         DECLARE @ErrorNumber  VARCHAR(16);
  21.                         DECLARE @ErrorLineNumber VARCHAR(6);
  22.                         SET @ErrorNumber = CAST(ERROR_NUMBER() AS VARCHAR(16));
  23.                         SET @ErrorLineNumber = CAST(ERROR_LINE() AS VARCHAR(6));
  24.                         SET @ErrorMessage = ERROR_MESSAGE();
  25.  
  26.                         SET @ExceptionMessage = ''Error upgrading Metadata Database - Error#:''
  27.                                         + COALESCE(@ErrorNumber,'''')
  28.                                         + '' Line#:'' + COALESCE(@ErrorLineNumber,'''')
  29.                                         + '' Message:'' + COALESCE(@ErrorMessage,'''');
  30.                         PRINT(@ExceptionMessage);
  31.                         THROW 52416, @ExceptionMessage, 1;');
  32. END
  33.  
  34. -- If we need to modify this proc, do it in here as an ALTER IF EXISTS
  35. PRINT('Create function [Admin].[IsLessThanOrEqualToCurrentVersion]');
  36.  
  37. DECLARE @ProcedureScriptTypeLess VARCHAR(10) = 'ALTER ';
  38. DECLARE @ProcedureBodyTextLess VARCHAR(4000) = '';
  39.  
  40. IF NOT EXISTS(SELECT 1 FROM sys.objects WHERE object_id = OBJECT_ID(N'[Admin].[IsLessThanOrEqualToCurrentVersion]') AND type IN ( N'FN', N'IF', N'TF', N'FS', N'FT' ))
  41. BEGIN
  42.         SET @ProcedureScriptTypeLess = 'CREATE ';
  43. END;
  44.  
  45.  
  46. BEGIN TRY
  47.         BEGIN TRANSACTION
  48.                 -- SCRIPT
  49.                         SET @ProcedureBodyTextLess = @ProcedureScriptTypeLess +'FUNCTION [Admin].IsLessThanOrEqualToCurrentVersion
  50.                         (
  51.                                         @ApplicationNM VARCHAR(255)
  52.                                 ,@VersionTXT VARCHAR(40)
  53.                         )
  54.                         RETURNS BIT
  55.                         BEGIN
  56.                                 DECLARE @Result BIT = 0
  57.                                 -- Contents removed for brevity
  58.  
  59.                                 RETURN @Result;
  60.                         END;';
  61.  
  62.                 EXEC(@ProcedureBodyTextLess);
  63.  
  64.         COMMIT TRANSACTION;
  65. END TRY
  66. BEGIN CATCH
  67.         IF (XACT_STATE() <> 0)
  68.                 ROLLBACK TRANSACTION;
  69.                 EXECUTE [Admin].PrintErrorAndThrowException;
  70. END CATCH;
  71.  
  72. -- END 3.3.60.20 SCRIPT --
  73. /**************************************************************************************************/
  74. -- 3.3.60.21 SCRIPT
  75. PRINT('Drop primary key constraint on ETLTableHistoryBASE');
  76. /**************************************************************************************************/
  77. IF ([Admin].IsLessThanOrEqualToCurrentVersion('Metadata', '3.3.60.21') = 0)
  78. BEGIN
  79.         BEGIN TRY
  80.                 BEGIN TRANSACTION
  81.                         -- SCRIPT
  82.  
  83.                         ALTER TABLE [Admin].ETLTableHistoryBASE
  84.                         DROP CONSTRAINT pkETLTableHistoryBASE
  85.  
  86.                         -- UPDATE VERSION
  87.                         EXECUTE [Admin].SetVersion 'Metadata', 3, 3, 60, 21;
  88.  
  89.                 COMMIT TRANSACTION;
  90.         END TRY
  91.         BEGIN CATCH
  92.                 IF (XACT_STATE() <> 0)
  93.                         ROLLBACK TRANSACTION;
  94.                         EXECUTE [Admin].PrintErrorAndThrowException;
  95.         END CATCH;
  96. END
  97. GO
  98. -- END 3.3.60.21 SCRIPT --
  99.  
  100. /**************************************************************************************************/
  101. -- 3.3.60.22 SCRIPT
  102. PRINT('Add primary key column, constraint and index to ETLTableHistoryBASE');
  103. /**************************************************************************************************/
  104. IF ([Admin].IsLessThanOrEqualToCurrentVersion('Metadata', '3.3.60.22') = 0)
  105. BEGIN
  106.         BEGIN TRY
  107.                 BEGIN TRANSACTION
  108.                         -- SCRIPT
  109.  
  110.                         ALTER TABLE [Admin].ETLTableHistoryBASE
  111.                         ADD TableHistoryID INT IDENTITY(1,1) NOT NULL
  112.                        
  113.                         ALTER TABLE [Admin].ETLTableHistoryBASE
  114.                         ADD CONSTRAINT pkETLTableHistoryBASE PRIMARY KEY CLUSTERED(TableHistoryID ASC)
  115.  
  116.                         CREATE NONCLUSTERED INDEX [ixEtlTableHistoryBASEComposite1] ON [Admin].[ETLTableHistoryBASE] (BatchID, TableID) ON [HCEDWAdminIndex1];
  117.  
  118.                         -- UPDATE VERSION
  119.                         EXECUTE [Admin].SetVersion 'Metadata', 3, 3, 60, 22;
  120.  
  121.                 COMMIT TRANSACTION;
  122.         END TRY
  123.         BEGIN CATCH
  124.                 IF (XACT_STATE() <> 0)
  125.                         ROLLBACK TRANSACTION;
  126.                         EXECUTE [Admin].PrintErrorAndThrowException;
  127.         END CATCH;
  128. END
  129. GO
  130. -- END 3.3.60.22 SCRIPT --
  131.  
  132. /**************************************************************************************************/
  133. -- 3.3.60.26 SCRIPT
  134. PRINT('Add new column TableHistoryID in ETLLogBASE');
  135. /**************************************************************************************************/
  136. IF ([Admin].IsLessThanOrEqualToCurrentVersion('Metadata', '3.3.60.26') = 0)
  137. BEGIN
  138.         BEGIN TRY
  139.                 BEGIN TRANSACTION
  140.                         -- SCRIPT
  141.  
  142.       ALTER TABLE [Admin].ETLLogBASE
  143.                         ADD TableHistoryID INT NULL
  144.                        
  145.                         -- UPDATE VERSION
  146.                         EXECUTE [Admin].SetVersion 'Metadata', 3, 3, 60, 26;
  147.  
  148.                 COMMIT TRANSACTION;
  149.         END TRY
  150.         BEGIN CATCH
  151.                 IF (XACT_STATE() <> 0)
  152.                         ROLLBACK TRANSACTION;
  153.                         EXECUTE [Admin].PrintErrorAndThrowException;
  154.         END CATCH;
  155. END
  156. GO
  157. -- END 3.3.60.26 SCRIPT --
  158.  
  159. /**************************************************************************************************/
  160. -- 3.3.61.1 SCRIPT
  161. PRINT('Populate TableHistoryID in [Admin].ETLLogBASE');
  162. /**************************************************************************************************/
  163. IF ([Admin].IsLessThanOrEqualToCurrentVersion('Metadata', '3.3.61.1') = 0)
  164. BEGIN
  165.         BEGIN TRY
  166.                 BEGIN TRANSACTION
  167.                         -- SCRIPT
  168.       UPDATE [Admin].ETLLogBASE
  169.                         SET TableHistoryID = histories.TableHistoryID
  170.       FROM [Admin].ETLLogBASE logs JOIN [Admin].ETLTableHistoryBASE histories
  171.         ON logs.BatchID = histories.BatchID AND logs.TableID = histories.TableID;
  172.  
  173.                         -- UPDATE VERSION
  174.                         EXECUTE [Admin].SetVersion 'Metadata', 3, 3, 61, 1;
  175.  
  176.                 COMMIT TRANSACTION;
  177.         END TRY
  178.         BEGIN CATCH
  179.                 IF (XACT_STATE() <> 0)
  180.                         ROLLBACK TRANSACTION;
  181.                         EXECUTE [Admin].PrintErrorAndThrowException;
  182.         END CATCH;
  183. END
  184. GO
  185. -- END 3.3.61.1 SCRIPT --
  186.  
  187. GO
  188. ALTER DATABASE [EDWAdmin]
  189.     SET MULTI_USER
  190.     WITH ROLLBACK IMMEDIATE;
  191.  
  192. GO
  193.