Safety/SQLUpdates/Update-1-0-0.sql
2026-09-01 19:47:49 +02:00

232 lines
No EOL
7.7 KiB
Transact-SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

--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