--SCRIPT template SET NOCOUNT ON; BEGIN TRANSACTION; DECLARE @CurrentVersion VARCHAR(20) = '1.0.0'; -- Set your script's target version -- Check if this update has already been applied IF EXISTS ( SELECT 1 FROM [dbo].[SchemaVersion] WHERE [VersionNumber] = @CurrentVersion ) BEGIN PRINT 'Version ' + @CurrentVersion + ' has already been applied. Skipping script.'; ROLLBACK TRANSACTION; RETURN; END; BEGIN TRY -- ========================================================= -- YOUR MIGRATION SQL GOES HERE -- ========================================================= EXEC [sp_executesql] N' ALTER PROCEDURE [dbo].[RegistrySelect] AS SELECT [r].[RegistryID], [r].[IdentificatieToestel], [ParentID] = NULL, [r].[TypeAanduiding], [TypeAanduidingNaam] = [tl].[ToestelModelNaam], [r].[SerieNummer], [Eigenaar] = ISNULL([r].[Eigenaar], ''HPH''), [CCWBS_ID] = ISNULL([r].[CCWBS_ID], 1), [cw].[WBSCC_nr], [r].[NaamFabrikant], [r].[NaamLeverancier], [r].[DatumInGebruik], --= Today (Default + aanpassing mogelijk) [r].[DatumUitGebruik], [r].[Lokaal_ID], [lk].[LokaalNaam], --– SELECT [dbo_Lokaal].[Lokaal_ID], [dbo_Lokaal].[LokaalNaam] FROM dbo_Lokaal ORDER BY [LokaalNaam]; [r].[id_statuslijst], [sl].[RegisterStatus], [r].[DefinitieNummerKal], [r].[KalibratieFrequentie], [r].[KalibratieFrequentieUnit], [KalibratieFrequentieUnitName] = [fe].[description], [r].[KalibratieVerantw], [KalibratieVerantwAfkorting] = [kv].[Afkorting], [r].[Assetnr] FROM [dbo].[Register] [r] LEFT JOIN [dbo].[Toestelmodel] AS [tl] ON [tl].[TypeAanduiding] = [r].[TypeAanduiding] LEFT JOIN [dbo].[Lokaal] AS [lk] ON [lk].[Lokaal_ID] = [r].[Lokaal_ID] LEFT JOIN [dbo].[Statuslijst] [sl] ON [sl].[ID_statuslijst] = [r].[id_statuslijst] LEFT JOIN [dbo].[frequentieEenheid] [fe] ON [fe].[FrequentieEenheid] = [r].[KalibratieFrequentieUnit] LEFT JOIN [dbo].[KCO_verantw] [kv] ON [kv].[ID_KCO_Verantw] = [r].[KalibratieVerantw] LEFT JOIN [dbo].[CCWBS] [cw] ON [cw].[CCWBS_ID] = [r].[CCWBS_ID] WHERE [r].[deleted] = 0; ' ; EXEC [sp_executesql] N' ALTER PROCEDURE [dbo].[RegistryInsert] @IdentificatieToestel VARCHAR(20) = NULL, @TypeAanduiding VARCHAR(4) = NULL, @SerieNummer VARCHAR(25) = NULL, @Eigenaar VARCHAR(50) = NULL, @CCWBS_ID INT = NULL, @NaamFabrikant VARCHAR(50) = NULL, @NaamLeverancier VARCHAR(50) = NULL, @DatumInGebruik DATETIME = NULL, @DatumUitGebruik DATETIME = NULL, @Lokaal_ID INT = NULL, @id_statuslijst INT = NULL, @DefinitieNummerKal INT = NULL, @KalibratieFrequentie INT = NULL, @KalibratieFrequentieUnit CHAR(1) = NULL, @KalibratieVerantw INT = NULL,@Assetnr varchar(20)=null AS DECLARE @RegistryID INT; INSERT [dbo].[Register] ( [IdentificatieToestel], [TypeAanduiding], [SerieNummer], [Eigenaar], [CCWBS_ID], [NaamFabrikant], [NaamLeverancier], [DatumInGebruik], [DatumUitGebruik], [Lokaal_ID], [id_statuslijst], [DefinitieNummerKal], [KalibratieFrequentie], [KalibratieFrequentieUnit], [KalibratieVerantw], [deleted],[Assetnr] ) VALUES (@IdentificatieToestel, @TypeAanduiding, @SerieNummer, @Eigenaar, @CCWBS_ID, @NaamFabrikant, @NaamLeverancier, @DatumInGebruik, @DatumUitGebruik, @Lokaal_ID, @id_statuslijst, @DefinitieNummerKal, @KalibratieFrequentie, @KalibratieFrequentieUnit, @KalibratieVerantw, 0,@Assetnr); SET @RegistryID = SCOPE_IDENTITY(); SELECT [r].[RegistryID], [r].[IdentificatieToestel], [r].[TypeAanduiding], [TypeAanduidingNaam] = [tl].[ToestelModelNaam], [r].[SerieNummer], [Eigenaar] = ISNULL([r].[Eigenaar], ''HPH''), [CCWBS_ID] = ISNULL([r].[CCWBS_ID], 1), [cw].[WBSCC_nr], [r].[NaamFabrikant], [r].[NaamLeverancier], [r].[DatumInGebruik], --= Today (Default + aanpassing mogelijk) [r].[DatumUitGebruik], [r].[Lokaal_ID], [lk].[LokaalNaam], --– SELECT [dbo_Lokaal].[Lokaal_ID], [dbo_Lokaal].[LokaalNaam] FROM dbo_Lokaal ORDER BY [LokaalNaam]; [r].[id_statuslijst], [sl].[RegisterStatus] [DefinitieNummerKal], [r].[KalibratieFrequentie], [r].[KalibratieFrequentieUnit], [KalibratieFrequentieUnitName] = [fe].[description], [r].[KalibratieVerantw], [KalibratieVerantwAfkorting] = [kv].[Afkorting], [r].[Assetnr] FROM [dbo].[Register] [r] LEFT JOIN [dbo].[Toestelmodel] AS [tl] ON [tl].[TypeAanduiding] = [r].[TypeAanduiding] LEFT JOIN [dbo].[Lokaal] AS [lk] ON [lk].[Lokaal_ID] = [r].[Lokaal_ID] LEFT JOIN [dbo].[Statuslijst] [sl] ON [sl].[ID_statuslijst] = [r].[id_statuslijst] LEFT JOIN [dbo].[frequentieEenheid] [fe] ON [fe].[FrequentieEenheid] = [r].[KalibratieFrequentieUnit] LEFT JOIN [dbo].[KCO_verantw] [kv] ON [kv].[ID_KCO_Verantw] = [r].[KalibratieVerantw] LEFT JOIN [dbo].[CCWBS] [cw] ON [cw].[CCWBS_ID] = [r].[CCWBS_ID] WHERE [r].[RegistryID] = @RegistryID; ' ; EXEC [sp_executesql] N' ALTER PROCEDURE [dbo].[RegistryUpdate] @RegistryID INT, @IdentificatieToestel VARCHAR(20) = NULL, @TypeAanduiding VARCHAR(4) = NULL, @SerieNummer VARCHAR(25) = NULL, @Eigenaar VARCHAR(50) = NULL, @CCWBS_ID INT = NULL, @NaamFabrikant VARCHAR(50) = NULL, @NaamLeverancier VARCHAR(50) = NULL, @DatumInGebruik DATETIME = NULL, @DatumUitGebruik DATETIME = NULL, @Lokaal_ID INT = NULL, ----niet meer update , is via tabel @id_statuslijst INT = NULL, --niet meer update @DefinitieNummerKal INT = NULL, @KalibratieFrequentie INT = NULL, @KalibratieFrequentieUnit CHAR(1) = NULL, @KalibratieVerantw INT = NULL, @Assetnr VARCHAR(20) = NULL AS DECLARE @now DATETIME = GETDATE(); DECLARE @id_status INT; DECLARE @usr VARCHAR(20) = LEFT(SYSTEM_USER, 20); INSERT [dbo].[Status] ( [RegistryID], [Datum], [id_statuslijst], [lokaalInfo], [opmerking], [creator], [created], [changer], [changed] ) VALUES (@RegistryID, @now, @id_statuslijst, @Lokaal_ID, ''initial'', @usr, @now, @usr, @now); SET @id_status = SCOPE_IDENTITY(); UPDATE [dbo].[Register] SET [IdentificatieToestel] = @IdentificatieToestel, [TypeAanduiding] = @TypeAanduiding, [SerieNummer] = @SerieNummer, [Eigenaar] = @Eigenaar, [CCWBS_ID] = @CCWBS_ID, [NaamFabrikant] = @NaamFabrikant, [NaamLeverancier] = @NaamLeverancier, [DefinitieNummerKal] = @DefinitieNummerKal, [KalibratieFrequentie] = @KalibratieFrequentie, [KalibratieFrequentieUnit] = @KalibratieFrequentieUnit, [KalibratieVerantw] = @KalibratieVerantw, [id_statuslijst] = @id_statuslijst, [Last_ID_Status] = @id_status, [Last_Date_Status] = @now, --,[Lokaal_ID]= @Lokaal_ID [DatumInGebruik] = @DatumInGebruik, [DatumUitGebruik] = @DatumUitGebruik, [Assetnr] = ISNULL(@Assetnr, [Assetnr]) WHERE [RegistryID] = @RegistryID; ' ; -- ========================================================= -- RECORD SUCCESSFUL VERSION UPDATE -- ========================================================= INSERT INTO [dbo].[SchemaVersion] ( [VersionNumber], [ScriptDescription] ) VALUES (@CurrentVersion, 'Added Assetnr to Registryxxx sp'); COMMIT TRANSACTION; PRINT 'Successfully applied update to version ' + @CurrentVersion; END TRY BEGIN CATCH ROLLBACK TRANSACTION; -- Print exception details DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE(); RAISERROR('Failed to apply version %s. Error: %s', 16, 1, @CurrentVersion, @ErrorMessage); END CATCH; GO