Safety/SQLUpdates/Update-1-0-0.sql

232 lines
7.7 KiB
MySQL
Raw Normal View History

2026-09-01 19:47:49 +02:00

2026-09-01 19:37:25 +02:00
--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
2026-09-01 19:47:49 +02:00
IF EXISTS
(
SELECT 1
FROM [dbo].[SchemaVersion]
WHERE [VersionNumber] = @CurrentVersion
)
2026-09-01 19:37:25 +02:00
BEGIN
PRINT 'Version ' + @CurrentVersion + ' has already been applied. Skipping script.';
ROLLBACK TRANSACTION;
RETURN;
2026-09-01 19:47:49 +02:00
END;
2026-09-01 19:37:25 +02:00
BEGIN TRY
-- =========================================================
2026-09-01 19:47:49 +02:00
-- YOUR MIGRATION SQL GOES HERE
2026-09-01 19:37:25 +02:00
-- =========================================================
2026-09-01 19:47:49 +02:00
EXEC [sp_executesql] N'
2026-09-01 19:37:25 +02:00
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;
2026-09-01 19:47:49 +02:00
' ;
2026-09-01 19:37:25 +02:00
2026-09-01 19:47:49 +02:00
EXEC [sp_executesql] N'
2026-09-01 19:37:25 +02:00
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;
2026-09-01 19:47:49 +02:00
' ;
2026-09-01 19:37:25 +02:00
2026-09-01 19:47:49 +02:00
EXEC [sp_executesql] N'
2026-09-01 19:37:25 +02:00
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;
2026-09-01 19:47:49 +02:00
' ;
2026-09-01 19:37:25 +02:00
-- =========================================================
-- RECORD SUCCESSFUL VERSION UPDATE
-- =========================================================
2026-09-01 19:47:49 +02:00
INSERT INTO [dbo].[SchemaVersion]
(
[VersionNumber],
[ScriptDescription]
)
VALUES
(@CurrentVersion, 'Added Assetnr to Registryxxx sp');
2026-09-01 19:37:25 +02:00
COMMIT TRANSACTION;
PRINT 'Successfully applied update to version ' + @CurrentVersion;
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION;
2026-09-01 19:47:49 +02:00
2026-09-01 19:37:25 +02:00
-- Print exception details
DECLARE @ErrorMessage NVARCHAR(4000) = ERROR_MESSAGE();
RAISERROR('Failed to apply version %s. Error: %s', 16, 1, @CurrentVersion, @ErrorMessage);
END CATCH;
GO