DECLARE @ServiceURL [Unicode1024], @DatabaseVersion [Unicode1024], @DatabaseVersionNy [Unicode1024] = '0005', @LocalPath [Unicode1024], @SevenZipArguments [Unicode1024], @InstallDacpacArguments [Unicode1024], @DataLeveringKlientDacpacFile [Unicode1024], @DatabaseName [Unicode1024], @ConnectionString [Unicode1024], @FejlTekst nvarchar(max), @BeskedOutput [Unicode1024], @result int = 0, @OverfoerselsStatus int = 0; EXEC [System].[HentIkkeTomtFlag] @Flag = N'ServiceKonfigurationURL', @FlagVarcharVaerdi = @ServiceURL out; EXEC [System].[HentIkkeTomtFlag] @Flag = N'DatabaseVersion', @FlagVarcharVaerdi = @DatabaseVersion out; EXEC [System].[HentIkkeTomtFlag] @Flag = N'LocalPath', @FlagVarcharVaerdi = @LocalPath out; -- SET @DatabaseVersion = '0003' IF (@DatabaseVersion < @DatabaseVersionNy) BEGIN SET @BeskedOutput = 'Opdaterer fra version ' + @DatabaseVersion + ' til fuld version ' + @DatabaseVersionNy + '.'; RAISERROR(@BeskedOutput,0,1) with nowait; EXEC [System].[HentIkkeTomtFlag] @Flag = N'7zArguments', @FlagVarcharVaerdi = @SevenZipArguments out; SET @SevenZipArguments = REPLACE(@SevenZipArguments,'[DatabaseVersion]',@DatabaseVersionNy) EXECUTE @result = [CLR].[SevenZip] '.',@LocalPath, @SevenZipArguments, 1, @FejlTekst out; SET @DataLeveringKlientDacpacFile = @LocalPath + '\' + REPLACE('DataLeveringKlient[version].dacpac','[version]', @DatabaseVersionNy) SET @DatabaseName = DB_NAME(); IF (@result < 0) BEGIN RAISERROR('Fejl i kald til Sevenzip. Afviklingen stoppes.',0,1) with nowait; END ELSE IF (@result >= 0) BEGIN RAISERROR('Kald til [System].[InstallDacpac].',0,1) with nowait; SET @InstallDacpacArguments = '/server:' + @@SERVERNAME + ' /database:' + DB_NAME()+ ' /DacpacPath:' + @LocalPath + '"\Pakke\Pakke"'+ @DatabaseVersionNy + '"\DataLeveringKlient.dacpac"'; EXECUTE @result = [CLR].[InstallDacpac] @LocalPath, @InstallDacpacArguments, 1, @FejlTekst out; IF (@result < 0) BEGIN RAISERROR('Systemopdatering fejlet ved InstallDacpac. %s', 0, 1, @FejlTekst) with nowait; END ELSE IF (@result >= 0) BEGIN RAISERROR('Systemopdatering ved InstallDacpac er fuldført.', 0, 1) with nowait; EXEC [System].[GemFlag] @Flag = 'DatabaseVersion', @FlagVarcharVaerdi = @DatabaseVersionNy; END END END ELSE RAISERROR('Database er allerede opgraderet til korrekte version 0005.',0,1) with nowait;