238 lines
No EOL
8 KiB
Transact-SQL
238 lines
No EOL
8 KiB
Transact-SQL
IF OBJECT_ID('dbo.SchemaVersion', 'U') IS NULL
|
||
BEGIN
|
||
CREATE TABLE dbo.SchemaVersion (
|
||
VersionNumber VARCHAR(20) NOT NULL PRIMARY KEY,
|
||
AppliedOn DATETIME2 NOT NULL DEFAULT GETDATE(),
|
||
AppliedBy VARCHAR(100) NOT NULL DEFAULT SUSER_SNAME(),
|
||
ScriptDescription VARCHAR(255) NULL
|
||
);
|
||
PRINT 'Table dbo.SchemaVersion created successfully.';
|
||
END
|
||
ELSE
|
||
BEGIN
|
||
PRINT 'Table dbo.SchemaVersion already exists.';
|
||
END
|
||
GO
|
||
|
||
|
||
--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
|
||
-- =========================================================
|
||
-- MIGRATION SQL
|
||
-- =========================================================
|
||
|
||
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 |