USE [eDosLocal] ; GO PRINT 'initial settings station' ; DECLARE @host VARCHAR(20) = HOST_NAME() ; DECLARE @NeedCreate BIT = 0 ; DECLARE @NewVisit INT, @Cur INT ; IF NOT EXISTS (SELECT * FROM [dbo].[StationSettings] WHERE [PCNr] = @host) SET @NeedCreate = 1 ; DECLARE @s TABLE([ID_Station] [INT] NOT NULL, [PCNr] [VARCHAR](20) NOT NULL, [ComPort] [INT] NULL, [Inst_CODE1] [INT] NULL, [Inst_CODE2] [INT] NULL, [Inst_Name1] [VARCHAR](50) NULL, [Inst_Name2] [VARCHAR](50) NULL, [TestCSN] [VARCHAR](50) NULL, [Reader] [VARCHAR](70) NULL, [useTestButtons] [BIT] NULL, [useBeep] [TINYINT] NULL, [checkUser] [BIT] NOT NULL, [EPDTimeout] [INT] NULL, [EPDREtries] [INT] NULL, [RestartCom] [BIT] NULL, [RestartComFirst] [BIT] NULL, [OnlyMK2] [BIT] NULL, [AllowMultipleEPD] [BIT] NULL, [NewID_Visit] INT) ; INSERT @s EXEC [eDos].[eDos].[dbo].[GetStationInfo] @hostname = @host, @AllowCreate = @NeedCreate ; IF @NeedCreate = 1 BEGIN SET IDENTITY_INSERT [dbo].[StationSettings] ON ; INSERT [dbo].[StationSettings]([ID_Station], [PCNr], [ComPort], [Inst_CODE1], [Inst_CODE2], [Inst_Name1], [Inst_Name2], [TestCSN], [Reader], [useTestButtons], [useBeep], [checkUser], [EPDTimeout], [EPDREtries], [RestartCom], [RestartComFirst], [OnlyMK2], [AllowMultipleEPD]) SELECT [ID_Station], [PCNr], [ComPort], [Inst_CODE1], [Inst_CODE2], [Inst_Name1], [Inst_Name2], [TestCSN], [Reader], [useTestButtons], [useBeep], [checkUser], [EPDTimeout], [EPDREtries], [RestartCom], [RestartComFirst], [OnlyMK2], [AllowMultipleEPD] FROM @s WHERE [PCNr] = @host ; SET IDENTITY_INSERT [dbo].[StationSettings] OFF ; END ; --end if @NeedCreate = 1 SELECT @NewVisit = [NewID_Visit] FROM @s WHERE [PCNr] = @host ; IF NOT @NewVisit IS NULL BEGIN DECLARE @sql NVARCHAR(MAX) ; IF NOT OBJECT_ID('dbo.VisitSequence') IS NULL SELECT @Cur = CONVERT(INT, [current_value]) FROM [sys].[sequences] WHERE [name] = 'VisitSequence' ; ELSE SET @Cur = NULL ; IF @Cur IS NULL SET @sql = N'CREATE SEQUENCE [dbo].[VisitSequence] AS [INT] START WITH '+CAST(@NewVisit AS NVARCHAR(20))+N' INCREMENT BY 1 MINVALUE 0 MAXVALUE 2147483647 CACHE; GRANT UPDATE ON [dbo].[VisitSequence] TO [eDosStation];' ; ELSE BEGIN IF @Cur < @NewVisit SET @sql = N'ALTER SEQUENCE [dbo].[VisitSequence] RESTART WITH '+CAST(@NewVisit AS NVARCHAR(20))+N';' ; END ; IF @sql IS NOT NULL BEGIN EXEC [sys].[sp_executesql] @sql ; END ; END ;