You are on page 1of 27

MCPTVARIABLEDESC:

================
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VariableIDDel int
@VariableTypeIDDel int
@LastChangeDel datetime
@FormatfittingDel int
@ScaleIDDel int
@VariableNameDel nvarchar(400)
@AddressParameterDel nvarchar(400)
@ProtokollDel int
@VarFlagsDel int
@ConnectionIDDel int
@VarPropertyDel int
@CycleTimeIDDel int
@AsDataSizeDel int
@OSdataSizeDel int
@VarGroupIDDel int
@VarMarkDel int
@VarXresDel int
@MaxLimitDel nvarchar(256)
@MinLimitDel nvarchar(256)
@StartValueDel nvarchar(256)
@SubstValueDel nvarchar(256)
@ScaleTypeDel int
@ScaleParam1Del float
@ScaleParam2Del float
@ScaleParam3Del float
@ScaleParam4Del float
@VarWeightingDel int
@VarFlags2Del int

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VariableID int
@VariableTypeID int
@LastChange datetime
@Formatfitting int
@ScaleID int
@VariableName nvarchar(400)
@AddressParameter nvarchar(400)
@Protokoll int
@VarFlags int
@ConnectionID int
@VarProperty int
@CycleTimeID int
@AsDataSize int
@OSdataSize int
@VarGroupID int
@VarMark int
@VarXres int
@MaxLimit nvarchar(256)
@MinLimit nvarchar(256)
@StartValue nvarchar(256)
@SubstValue nvarchar(256)
@ScaleType int
@ScaleParam1 float
@ScaleParam2 float
@ScaleParam3 float
@ScaleParam4 float
@VarWeighting int

DECLARE @VarFlags2 int

CREATE TABLE [dbo].[MCPTVARIABLEDESC](


[VARIABLEID] [int] NOT NULL,
[VARIABLETYPEID] [int] NOT NULL,
[LASTCHANGE] [datetime] NULL,
[FORMATFITTING] [int] NULL,
[SCALEID] [int] NULL,
[VARIABLENAME] [nvarchar](400) NOT NULL,
[ADDRESSPARAMETER] [nvarchar](256) NULL,
[PROTOKOLL] [int] NOT NULL,
[VARFLAGS] [int] NULL,
[CONNECTIONID] [int] NOT NULL,
[VARPROPERTY] [int] NOT NULL,
[CYCLETIMEID] [int] NULL,
[ASDATASIZE] [int] NULL,
[OSDATASIZE] [int] NULL,
[VARGROUPID] [int] NULL,
[VARMARK] [int] NULL,
[VARXRES] [int] NULL,
[MAXLIMIT] [nvarchar](256) NULL,
[MINLIMIT] [nvarchar](256) NULL,
[STARTVALUE] [nvarchar](256) NULL,
[SUBSTVALUE] [nvarchar](256) NULL,
[SCALETYPE] [int] NULL,
[SCALEPARAM1] [float] NULL,
[SCALEPARAM2] [float] NULL,
[SCALEPARAM3] [float] NULL,
[SCALEPARAM4] [float] NULL,
[VARWEIGHTING] [int] NULL,
[VARFLAGS2] [int] NULL,
CONSTRAINT [PK__MCPTVARIABLEDESC] PRIMARY KEY CLUSTERED
public const string DmUpdateTrigger_VariableDesc = @"CREATE TRIGGER WinC
CAuditTagTrigger_VariableDesc_ForUpdate
ON MCPTVARIABLEDESC
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @VariableIDDel int
DECLARE @VariableTypeIDDel int
DECLARE @LastChangeDel datetime
DECLARE @FormatfittingDel int
DECLARE @ScaleIDDel int
DECLARE @VariableNameDel nvarchar(400)
DECLARE @AddressParameterDel nvarchar(400)
DECLARE @ProtokollDel int
DECLARE @VarFlagsDel int
DECLARE @ConnectionIDDel int
DECLARE @VarPropertyDel int
DECLARE @CycleTimeIDDel int
DECLARE @AsDataSizeDel int
DECLARE @OSdataSizeDel int
DECLARE @VarGroupIDDel int
DECLARE @VarMarkDel int
DECLARE @VarXresDel int
DECLARE @MaxLimitDel nvarchar(256)

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@MinLimitDel nvarchar(256)
@StartValueDel nvarchar(256)
@SubstValueDel nvarchar(256)
@ScaleTypeDel int
@ScaleParam1Del float
@ScaleParam2Del float
@ScaleParam3Del float
@ScaleParam4Del float
@VarWeightingDel int
@VarFlags2Del int

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VariableID int
@VariableTypeID int
@LastChange datetime
@Formatfitting int
@ScaleID int
@VariableName nvarchar(400)
@AddressParameter nvarchar(400)
@Protokoll int
@VarFlags int
@ConnectionID int
@VarProperty int
@CycleTimeID int
@AsDataSize int
@OSdataSize int
@VarGroupID int
@VarMark int
@VarXres int
@MaxLimit nvarchar(256)
@MinLimit nvarchar(256)
@StartValue nvarchar(256)
@SubstValue nvarchar(256)
@ScaleType int
@ScaleParam1 float
@ScaleParam2 float
@ScaleParam3 float
@ScaleParam4 float
@VarWeighting int
@VarFlags2 int

declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.VARIABLEID, i.VARIABLETYPEID, i
.FORMATFITTING, i.SCALEID, i.VARIABLENAME, i.ADDRESSPARAMETER, i.PROTOKOLL, i.V
ARFLAGS, i.CONNECTIONID, i.VARPROPERTY, i.CYCLETIMEID, i.ASDATASIZE, i.OSDATASIZ
E, i.VARGROUPID, i.VARMARK, i.VARXRES, i.MAXLIMIT, i.MINLIMIT, i.STARTVALUE, i.S
UBSTVALUE, i.SCALETYPE, i.SCALEPARAM1, i.SCALEPARAM2, i.SCALEPARAM3, i.SCALEPARA
M4, i.VARWEIGHTING, i.VARFLAGS2 from inserted i;
declare curDeleted CURSOR FOR
select d.VARIABLEID, d.VARIABLETYPEID, d
.FORMATFITTING, d.SCALEID, d.VARIABLENAME, d.ADDRESSPARAMETER, d.PROTOKOLL, d.V
ARFLAGS, d.CONNECTIONID, d.VARPROPERTY, d.CYCLETIMEID, d.ASDATASIZE, d.OSDATASIZ
E, d.VARGROUPID, d.VARMARK, d.VARXRES, d.MAXLIMIT, d.MINLIMIT, d.STARTVALUE, d.S
UBSTVALUE, d.SCALETYPE, d.SCALEPARAM1, d.SCALEPARAM2, d.SCALEPARAM3, d.SCALEPARA
M4, d.VARWEIGHTING, d.VARFLAGS2 from deleted d;
OPEN curInserted

OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @VariableID, @VariableTypeID, @Formatfittin
g, @ScaleID, @VariableName, @AddressParameter, @Protokoll, @VarFlags, @Connectio
nID, @VarProperty, @CycleTimeID, @AsDataSize, @OSdataSize, @VarGroupID, @VarMark
, @VarXres, @MaxLimit, @MinLimit, @StartValue, @SubstValue, @ScaleType, @ScalePa
ram1, @ScaleParam2, @ScaleParam3, @ScaleParam4, @VarWeighting, @VarFlags2
FETCH NEXT FROM curDeleted
INTO @VariableIDDel, @VariableTypeIDDel, @FormatfittingDel, @Sca
leIDDel, @VariableNameDel, @AddressParameterDel, @ProtokollDel, @VarFlagsDel, @C
onnectionIDDel, @VarPropertyDel, @CycleTimeIDDel, @AsDataSizeDel, @OSdataSizeDel
, @VarGroupIDDel, @VarMarkDel, @VarXresDel, @MaxLimitDel, @MinLimitDel, @StartVa
lueDel, @SubstValueDel, @ScaleTypeDel, @ScaleParam1Del, @ScaleParam2Del, @ScaleP
aram3Del, @ScaleParam4Del, @VarWeightingDel, @VarFlags2Del
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@VariableTypeIDDel <> @VariableTypeID)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Variable TypeID', 3, @VariableTypeIDDel, @VariableTyp
eID, @time)
IF (@FormatfittingDel <> @Formatfitting)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Formatfitting', 3, @FormatfittingDel, @Formatfitting,
@time)
IF (@ScaleIDDel <> @ScaleID)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'ScaleID', 3, @ScaleIDDel, @ScaleID, @time)
IF (@VariableNameDel <> @VariableName)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, '', 1, '', 'Variable Name', 3, @VariableNameDel, @VariableName, @time)
IF (@AddressParameterDel <> @AddressParameter)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Address Parameter', 3, @AddressParameterDel, @Address
Parameter, @time)
IF (@ProtokollDel <> @Protokoll)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Protokoll', 3, @ProtokollDel, @Protokoll, @time)
IF (@VarFlagsDel <> @VarFlags)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]

([ItemId], [ItemName], [Module], [Subtype], [Propert


y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Var Flags', 3, @VarFlagsDel, @VarFlags, @time)
IF (@ConnectionIDDel <> @ConnectionID)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Connection ID', 3, @ConnectionIDDel, @ConnectionID, @
time)
IF (@VarPropertyDel <> @VarProperty)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Var Property', 3, @VarPropertyDel, @VarProperty, @tim
e)
IF (@CycleTimeIDDel <> @CycleTimeID)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Cycle TimeID', 3, @CycleTimeIDDel, @CycleTimeID, @tim
e)
IF (@AsDataSizeDel <> @AsDataSize)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'AsDataSize', 3, @AsDataSizeDel, @AsDataSize, @time)
IF (@OSdataSizeDel <> @OSdataSize)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'OSdataSize', 3, @OSdataSizeDel, @OSdataSize, @time)
IF (@VarGroupIDDel <> @VarGroupID)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Var GroupID', 3, @VarGroupIDDel, @VarGroupID, @time)
IF (@VarMarkDel <> @VarMark)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Var Mark', 3, @VarMarkDel, @VarMark, @time)
IF (@VarXresDel <> @VarXres)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'VarX res', 3, @VarXresDel, @VarXres, @time)
IF (@MaxLimitDel <> @MaxLimit)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Max Limit', 3, @MaxLimitDel, @MaxLimit, @time)

IF (@MinLimitDel <> @MinLimit)


INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Min Limit', 3, @MinLimitDel, @MinLimit, @time)
IF (@StartValueDel <> @StartValue)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Start Value', 3, @StartValueDel, @StartValue, @time)
IF (@SubstValueDel <> @SubstValue)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Subst Value', 3, @SubstValueDel, @SubstValue, @time)
IF (@ScaleTypeDel <> @ScaleType)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Scale Type', 3, @ScaleTypeDel, @ScaleType, @time)
IF (@ScaleParam1Del <> @ScaleParam1)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Scale Param1', 3, @ScaleParam1Del, @ScaleParam1, @tim
e)
IF (@ScaleParam2Del <> @ScaleParam2)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Scale Param2', 3, @ScaleParam2Del, @ScaleParam2, @tim
e)
IF (@ScaleParam3Del <> @ScaleParam3)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Scale Param3', 3, @ScaleParam3Del, @ScaleParam3, @tim
e)
IF (@ScaleParam4Del <> @ScaleParam4)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Scale Param4', 3, @ScaleParam4Del, @ScaleParam4, @tim
e)
IF (@VarWeightingDel <> @VarWeighting)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Var Weighting', 3, @VarWeightingDel, @VarWeighting, @
time)

IF (@VarFlags2Del <> @VarFlags2)


INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
ID, @VariableName, 1, '', 'Var Flags2', 3, @VarFlags2Del, @VarFlags2, @time)
FETCH NEXT FROM curInserted
INTO @VariableID, @VariableTypeID, @Form
atfitting, @ScaleID, @VariableName, @AddressParameter, @Protokoll, @VarFlags, @C
onnectionID, @VarProperty, @CycleTimeID, @AsDataSize, @OSdataSize, @VarGroupID,
@VarMark, @VarXres, @MaxLimit, @MinLimit, @StartValue, @SubstValue, @ScaleType,
@ScaleParam1, @ScaleParam2, @ScaleParam3, @ScaleParam4, @VarWeighting, @VarFlags
2
FETCH NEXT FROM curDeleted
INTO @VariableIDDel, @VariableTypeIDDel,
@FormatfittingDel, @ScaleIDDel, @VariableNameDel, @AddressParameterDel, @Protok
ollDel, @VarFlagsDel, @ConnectionIDDel, @VarPropertyDel, @CycleTimeIDDel, @AsDat
aSizeDel, @OSdataSizeDel, @VarGroupIDDel, @VarMarkDel, @VarXresDel, @MaxLimitDel
, @MinLimitDel, @StartValueDel, @SubstValueDel, @ScaleTypeDel, @ScaleParam1Del,
@ScaleParam2Del, @ScaleParam3Del, @ScaleParam4Del, @VarWeightingDel, @VarFlags2D
el
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTCHANNEL](
[ChannelID] [smallint] NOT NULL,
[ChanneldllName] [nvarchar](400) NOT NULL,
[ChannelVerMaj] [smallint] NOT NULL,
[ChannelVerMin] [smallint] NOT NULL,
CONSTRAINT [PK__MCPTCHANNEL] PRIMARY KEY CLUSTERED
(
[CHANNELID] ASC
)
public const string DmUpdateTrigger_Channel = @"CREATE TRIGGER WinCCAuditTagTrig
ger_MCPTChannel_ForUpdate
ON MCPTCHANNEL
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @ChannelIDDel smallint
DECLARE @ChanneldllNameDel nvarchar(400)
DECLARE @ChannelVerMajDel smallint
DECLARE @ChannelVerMinDel smallint
DECLARE
DECLARE
DECLARE
DECLARE
declare @time datetime

@ChannelIDIns smallint
@ChanneldllNameIns nvarchar(400)
@ChannelVerMajIns smallint
@ChannelVerMinIns smallint

select @time = getdate()


declare curInserted CURSOR FOR
select i.ChannelID, i.ChanneldllName, i.
ChannelVerMaj, i.ChannelVerMin from inserted i;
declare curDeleted CURSOR FOR
select d.ChannelID, d.ChanneldllName, d.
ChannelVerMaj, d.ChannelVerMin from deleted d;
OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @ChannelIDIns, @ChanneldllNameIns, @Channel
VerMajIns, @ChannelVerMinIns
FETCH NEXT FROM curDeleted
INTO @ChannelIDDel, @ChanneldllNameDel, @ChannelVerMajDel, @Chan
nelVerMinDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ChanneldllNameDel <> @ChanneldllNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelI
DIns, '', 1, '', 'Channel Name', 3, @ChanneldllNameDel, @ChanneldllNameIns, @tim
e)
IF (@ChannelVerMajDel <> @ChannelVerMajIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelI
DIns, @ChanneldllNameIns, 1, '', 'Channel Version Maj', 3, @ChannelVerMajDel, @C
hannelVerMajIns, @time)
IF (@ChannelVerMinDel <> @ChannelVerMinIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelI
DIns, @ChanneldllNameIns, 1, '', 'Channel Version Maj', 3, @ChannelVerMinDel, @C
hannelVerMinIns, @time)
FETCH NEXT FROM curInserted
INTO @ChannelIDIns, @ChanneldllNameIns,
@ChannelVerMajIns, @ChannelVerMinIns
FETCH NEXT FROM curDeleted
INTO @ChannelIDDel, @ChanneldllNameDel,
@ChannelVerMajDel, @ChannelVerMinDel
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================

CREATE TABLE [dbo].[MCPTCHANNELUNIT](


[ChannelUnitID] [smallint] NOT NULL,
[ChannelUnitName] [nvarchar](400) NOT NULL,
[ChannelUnitNumber] [smallint] NOT NULL,
[ChannelID] [smallint] NOT NULL,
[ChannelUnitVerMaj] [smallint] NOT NULL,
[ChannelUnitVerMin] [smallint] NOT NULL,
[ChannelUnitMark] [int] NULL,
[ChannelUnitXres] [int] NULL,
CONSTRAINT [PK__MCPTCHANNELUNIT] PRIMARY KEY CLUSTERED
(
[CHANNELUNITID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

public const string DmUpdateTrigger_ChannelUnit = @"CREATE TRIGGER WinCCAuditTag


Trigger_MCPTChannelUnit_ForUpdate
ON MCPTCHANNELUNIT
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @ChannelUnitIDDel smallint
DECLARE @ChannelUnitNameDel nvarchar(400)
DECLARE @ChannelUnitNumberDel smallint
DECLARE @ChannelIDDel smallint
DECLARE @ChannelUnitVerMajDel smallint
DECLARE @ChannelUnitVerMinDel smallint
DECLARE @ChannelUnitMarkDel int
DECLARE @ChannelUnitXresDel int
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@ChannelUnitIDIns smallint
@ChannelUnitNameIns nvarchar(400)
@ChannelUnitNumberIns smallint
@ChannelIDIns smallint
@ChannelUnitVerMajIns smallint
@ChannelUnitVerMinIns smallint
@ChannelUnitMarkIns int
@ChannelUnitXresIns int

declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.ChannelUnitID, i.ChannelUnitNam
e, i.ChannelUnitNumber, i.ChannelID, i.ChannelUnitVerMaj, i.ChannelUnitVerMin, i
.ChannelUnitMark, i.ChannelUnitXres from inserted i;
declare curDeleted CURSOR FOR
select d.ChannelUnitID, d.ChannelUnitNam
e, d.ChannelUnitNumber, d.ChannelID, d.ChannelUnitVerMaj, d.ChannelUnitVerMin, d
.ChannelUnitMark, d.ChannelUnitXres from deleted d;
OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @ChannelUnitIDIns, @ChannelUnitNameIns, @Ch
annelUnitNumberIns, @ChannelIDIns, @ChannelUnitVerMajIns, @ChannelUnitVerMinIns,

@ChannelUnitMarkIns, @ChannelUnitXresIns
FETCH NEXT FROM curDeleted
INTO @ChannelUnitIDDel, @ChannelUnitNameDel, @ChannelUnitNumberD
el, @ChannelIDDel, @ChannelUnitVerMajDel, @ChannelUnitVerMinDel, @ChannelUnitMar
kDel, @ChannelUnitXresDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ChannelUnitNameDel <> @ChannelUnitNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, '', 1, '', 'Channel Unit Name', 3, @ChannelUnitNameDel, @ChannelUnitNa
meIns, @time)
IF (@ChannelUnitNumberDel <> @ChannelUnitNumberIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, @ChannelUnitNameIns, 1, '', 'Channel Unit Number', 3, @ChannelUnitNumb
erDel, @ChannelUnitNumberIns, @time)
IF (@ChannelIDDel <> @ChannelIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, @ChannelUnitNameIns, 1, '', 'Channel ID', 3, @ChannelIDDel, @ChannelID
Ins, @time)
IF (@ChannelUnitVerMajDel <> @ChannelUnitVerMajIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, @ChannelUnitNameIns, 1, '', 'Channel Unit Major Version', 3, @ChannelU
nitVerMajDel, @ChannelUnitVerMajIns, @time)
IF (@ChannelUnitVerMinDel <> @ChannelUnitVerMinIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, @ChannelUnitNameIns, 1, '', 'Channel Unit Minor Version', 3, @ChannelU
nitVerMinDel, @ChannelUnitVerMinIns, @time)
IF (@ChannelUnitMarkDel <> @ChannelUnitMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, @ChannelUnitNameIns, 1, '', 'Channel Unit Mark', 3, @ChannelUnitMarkDe
l, @ChannelUnitMarkIns, @time)
IF (@ChannelUnitXresDel <> @ChannelUnitXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ChannelU
nitIDIns, @ChannelUnitNameIns, 1, '', 'Channel Unit Xres', 3, @ChannelUnitXresDe
l, @ChannelUnitXresIns, @time)
FETCH NEXT FROM curInserted

INTO @ChannelUnitIDIns, @ChannelUnitName


Ins, @ChannelUnitNumberIns, @ChannelIDIns, @ChannelUnitVerMajIns, @ChannelUnitVe
rMinIns, @ChannelUnitMarkIns, @ChannelUnitXresIns
FETCH NEXT FROM curDeleted
INTO @ChannelUnitIDDel, @ChannelUnitName
Del, @ChannelUnitNumberDel, @ChannelIDDel, @ChannelUnitVerMajDel, @ChannelUnitVe
rMinDel, @ChannelUnitMarkDel, @ChannelUnitXresDel
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTCONNECTION](
[ConnectionID] [int] NOT NULL,
[MachineID] [smallint] NOT NULL,
[ChannelUnitID] [smallint] NOT NULL,
[ConnectionName] [nvarchar](256) NOT NULL,
[Parameter] [nvarchar](1024) NULL,
[TimesyncCycle] [int] NOT NULL,
[ConnectionLastChange] [datetime] NULL,
[ConMark] [int] NULL,
[ConXres] [int] NULL,
[PLCID] [int] NULL,
[S7PlusAlDomains] [nvarchar](128) NULL,
[PLCName] [nvarchar](256) NULL,
CONSTRAINT [PK__MCPTCONNECTION] PRIMARY KEY CLUSTERED
(
[CONNECTIONID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
public const string DmUpdateTrigger_Connection = @"CREATE TRIGGER WinCCAuditTagT
rigger_MCPTConnection_ForUpdate
ON MCPTCONNECTION
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @ConnectionIDDel int
DECLARE @MachineIDDel smallint
DECLARE @ChannelUnitIDDel smallint
DECLARE @ConnectionNameDel nvarchar(256)
DECLARE @ParameterDel nvarchar(1024)
DECLARE @TimesyncCycleDel int
DECLARE @ConnectionLastChangeDel datetime
DECLARE @ConMarkDel int
DECLARE @ConXresDel int
DECLARE @PLCIDDel int
DECLARE @S7PlusAlDomainsDel nvarchar(128)
DECLARE @PLCNameDel nvarchar(256)
DECLARE @ConnectionIDIns int
DECLARE @MachineIDIns smallint

DECLARE @ChannelUnitIDIns smallint


DECLARE @ConnectionNameIns nvarchar(256)
DECLARE @ParameterIns nvarchar(1024)
DECLARE @TimesyncCycleIns int
DECLARE @ConnectionLastChangeIns datetime
DECLARE @ConMarkIns int
DECLARE @ConXresIns int
DECLARE @PLCIDIns int
DECLARE @S7PlusAlDomainsIns nvarchar(128)
DECLARE @PLCNameIns nvarchar(256)
declare @time datetime
select @time = getdate()
declare curInserted CURSOR FOR
select i.ConnectionID, i.MachineID, i.Ch
annelUnitID, i.ConnectionName, i.Parameter, i.TimesyncCycle, i.ConnectionLastCha
nge, i.ConMark, i.ConXres, i.PLCID, i.S7PlusAlDomains, i.PLCName from inserted i
;
declare curDeleted CURSOR FOR
select d.ConnectionID, d.MachineID, d.Ch
annelUnitID, d.ConnectionName, d.Parameter, d.TimesyncCycle, d.ConnectionLastCha
nge, d.ConMark, d.ConXres, d.PLCID, d.S7PlusAlDomains, d.PLCName from deleted d;
OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @ConnectionIDIns, @MachineIDIns, @ChannelUn
itIDIns, @ConnectionNameIns, @ParameterIns, @TimesyncCycleIns, @ConnectionLastCh
angeIns, @ConMarkIns, @ConXresIns, @PLCIDIns, @S7PlusAlDomainsIns, @PLCNameIns
FETCH NEXT FROM curDeleted
INTO @ConnectionIDDel, @MachineIDDel, @ChannelUnitIDDel, @Connec
tionNameDel, @ParameterDel, @TimesyncCycleDel, @ConnectionLastChangeDel, @ConMar
kDel, @ConXresDel, @PLCIDDel, @S7PlusAlDomainsDel, @PLCNameDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@MachineIDDel <> @MachineIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'Machine ID', 3, @MachineIDDel, @MachineIDIn
s, @time)
IF (@ChannelUnitIDDel <> @ChannelUnitIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'Channel Unit ID', 3, @ChannelUnitIDDel, @Ch
annelUnitIDIns, @time)
IF (@ConnectionNameDel <> @ConnectionNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, '', 1, '', 'Connection Name', 3, @ConnectionNameDel, @ConnectionNameIns
, @time)

IF (@ParameterDel <> @ParameterIns)


INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'Parameter', 3, @ParameterDel, @ParameterIns
, @time)
IF (@TimesyncCycleDel <> @TimesyncCycleIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'TimesyncCycle', 3, @TimesyncCycleDel, @Time
syncCycleIns, @time)
IF (@ConMarkDel <> @ConMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'Con Mark', 3, @ConMarkDel, @ConMarkIns, @ti
me)
IF (@ConXresDel <> @ConXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'Con Xres', 3, @ConXresDel, @ConXresIns, @ti
me)
IF (@PLCIDDel <> @PLCIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'PLC ID', 3, @PLCIDDel, @PLCIDIns, @time)
IF (@S7PlusAlDomainsDel <> @S7PlusAlDomainsIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'S7PlusAlDomains', 3, @S7PlusAlDomainsDel, @
S7PlusAlDomainsIns, @time)
IF (@PLCNameDel <> @PLCNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Connecti
onIDIns, @ConnectionNameIns, 1, '', 'PLC Name', 3, @PLCNameDel, @PLCNameIns, @ti
me)
FETCH NEXT FROM curInserted
INTO @ConnectionIDIns, @MachineIDIns, @C
hannelUnitIDIns, @ConnectionNameIns, @ParameterIns, @TimesyncCycleIns, @Connecti
onLastChangeIns, @ConMarkIns, @ConXresIns, @PLCIDIns, @S7PlusAlDomainsIns, @PLCN
ameIns
FETCH NEXT FROM curDeleted
INTO @ConnectionIDDel, @MachineIDDel, @C
hannelUnitIDDel, @ConnectionNameDel, @ParameterDel, @TimesyncCycleDel, @Connecti
onLastChangeDel, @ConMarkDel, @ConXresDel, @PLCIDDel, @S7PlusAlDomainsDel, @PLCN
ameDel

END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTCYCLETIME](
[CycleTimeID] [int] NOT NULL,
[ProjectID] [smallint] NULL,
[CycleTime] [int] NULL,
[CycleMoidfy] [smallint] NULL,
[CycleName] [nvarchar](64) NULL,
[CycleMark] [int] NULL,
[CycleXres] [int] NULL,
CONSTRAINT [PK__MCPTCYCLETIME] PRIMARY KEY CLUSTERED
(
[CYCLETIMEID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
public const string DmUpdateTrigger_CycleTime = @"CREATE TRIGGER WinCCAuditTagTr
igger_MCPTCycleTime_ForUpdate
ON MCPTCYCLETIME
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @CycleTimeIDDel int
DECLARE @ProjectIDDel smallint
DECLARE @CycleTimeDel int
DECLARE @CycleMoidfyDel smallint
DECLARE @CycleNameDel nvarchar(64)
DECLARE @CycleMarkDel int
DECLARE @CycleXresDel int
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@CycleTimeIDIns int
@ProjectIDIns smallint
@CycleTimeIns int
@CycleMoidfyIns smallint
@CycleNameIns nvarchar(64)
@CycleMarkIns int
@CycleXresIns int

declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.CycleTimeID, i.ProjectID, i.Cyc
leTime, i.CycleMoidfy, i.CycleName, i.CycleMark, i.CycleXres from inserted i;
declare curDeleted CURSOR FOR
select d.CycleTimeID, d.ProjectID, d.Cyc
leTime, d.CycleMoidfy, d.CycleName, d.CycleMark, d.CycleXres from deleted d;
OPEN curInserted
OPEN curDeleted

FETCH NEXT FROM curInserted


INTO @CycleTimeIDIns, @ProjectIDIns, @CycleTimeI
ns, @CycleMoidfyIns, @CycleNameIns, @CycleMarkIns, @CycleXresIns
FETCH NEXT FROM curDeleted
INTO @CycleTimeIDDel, @ProjectIDDel, @CycleTimeDel, @CycleMoidfy
Del, @CycleNameDel, @CycleMarkDel, @CycleXresDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@ProjectIDDel <> @ProjectIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@CycleTim
eIDIns, @CycleNameIns, 1, '', 'Project ID', 3, @ProjectIDDel, @ProjectIDIns, @ti
me)
IF (@CycleTimeDel <> @CycleTimeIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@CycleTim
eIDIns, @CycleNameIns, 1, '', 'Cycle Time', 3, @CycleTimeDel, @CycleTimeIns, @ti
me)
IF (@CycleMoidfyDel <> @CycleMoidfyIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@CycleTim
eIDIns, @CycleNameIns, 1, '', 'Cycle Moidfy', 3, @CycleMoidfyDel, @CycleMoidfyIn
s, @time)
IF (@CycleNameDel <> @CycleNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@CycleTim
eIDIns, '', 1, '', 'Cycle Name', 3, @CycleNameDel, @CycleNameIns, @time)
IF (@CycleMarkDel <> @CycleMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@CycleTim
eIDIns, @CycleNameIns, 1, '', 'Cycle Mark', 3, @CycleMarkDel, @CycleMarkIns, @ti
me)
IF (@CycleXresDel <> @CycleXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@CycleTim
eIDIns, @CycleNameIns, 1, '', 'Cycle Xres', 3, @CycleXresDel, @CycleXresIns, @ti
me)
FETCH NEXT FROM curInserted
INTO @CycleTimeIDIns, @ProjectIDIns, @Cy
cleTimeIns, @CycleMoidfyIns, @CycleNameIns, @CycleMarkIns, @CycleXresIns
FETCH NEXT FROM curDeleted
INTO @CycleTimeIDDel, @ProjectIDDel, @Cy
cleTimeDel, @CycleMoidfyDel, @CycleNameDel, @CycleMarkDel, @CycleXresDel
END

CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTSYSTEMTABLES](
[ProjectID] [smallint] NOT NULL,
[MCPTableName] [nvarchar](32) NOT NULL,
[MCPTableType] [smallint] NOT NULL,
[MCPTableVersionMaj] [smallint] NOT NULL,
[MCPTableVersionMin] [smallint] NOT NULL,
[MCPTable] [int] NOT NULL,
[MCPTableMark] [int] NULL,
[MCPTabpeXres] [int] NULL,
CONSTRAINT [PK__MCPTSYSTEMTABLES] PRIMARY KEY CLUSTERED
(
[MCPTABLENAME] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
public const string DmUpdateTrigger_MCPTSystemTables = @"CREATE TRIGGER WinCCAud
itTagTrigger_MCPTSystemTables_ForUpdate
ON MCPTSYSTEMTABLES
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @ProjectIDDel smallint
DECLARE @MCPTableNameDel nvarchar(32)
DECLARE @MCPTableTypeDel smallint
DECLARE @MCPTableVersionMajDel smallint
DECLARE @MCPTableVersionMinDel smallint
DECLARE @MCPTableDel int
DECLARE @MCPTableMarkDel int
DECLARE @MCPTabpeXresDel int
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@ProjectIDIns smallint
@MCPTableNameIns nvarchar(32)
@MCPTableTypeIns smallint
@MCPTableVersionMajIns smallint
@MCPTableVersionMinIns smallint
@MCPTableIns int
@MCPTableMarkIns int
@MCPTabpeXresIns int

--Rev-declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.ProjectID, i.MCPTableName, i.MC
PTableType, i.MCPTableVersionMaj, i.MCPTableVersionMin, i.MCPTable, i.MCPTableMa
rk, i.MCPTabpeXres from inserted i;
declare curDeleted CURSOR FOR
select d.ProjectID, d.MCPTableName, d.MC
PTableType, d.MCPTableVersionMaj, d.MCPTableVersionMin, d.MCPTable, d.MCPTableMa

rk, d.MCPTabpeXres from deleted d;


OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @ProjectIDIns, @MCPTableNameIns, @MCPTableT
ypeIns, @MCPTableVersionMajIns, @MCPTableVersionMinIns, @MCPTableIns, @MCPTableM
arkIns, @MCPTabpeXresIns
FETCH NEXT FROM curDeleted
INTO @ProjectIDDel, @MCPTableNameDel, @MCPTableTypeDel, @MCPTabl
eVersionMajDel, @MCPTableVersionMinDel, @MCPTableDel, @MCPTableMarkDel, @MCPTabp
eXresDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@MCPTableNameDel <> @MCPTableNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI
DIns, '', 1, '', 'Table Name', 3, @MCPTableNameDel, @MCPTableNameIns, @time)
IF (@MCPTableTypeDel <> @MCPTableTypeIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI
DIns, @MCPTableNameIns, 1, '', 'Table Type', 3, @MCPTableTypeDel, @MCPTableTypeI
ns, @time)
IF (@MCPTableVersionMajDel <> @MCPTableVersionMajIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI
DIns, @MCPTableNameIns, 1, '', 'Table Version Maj', 3, @MCPTableVersionMajDel, @
MCPTableVersionMajIns, @time)
IF (@MCPTableVersionMinDel <> @MCPTableVersionMinIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI
DIns, @MCPTableNameIns, 1, '', 'Table Version Min', 3, @MCPTableVersionMinDel, @
MCPTableVersionMinIns, @time)
IF (@MCPTableDel <> @MCPTableIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI
DIns, @MCPTableNameIns, 1, '', 'Table', 3, @MCPTableDel, @MCPTableIns, @time)
IF (@MCPTableMarkDel <> @MCPTableMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI
DIns, @MCPTableNameIns, 1, '', 'Table Mark', 3, @MCPTableMarkDel, @MCPTableMarkI
ns, @time)
IF (@MCPTabpeXresDel <> @MCPTabpeXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert

y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@ProjectI


DIns, @MCPTableNameIns, 1, '', 'Table Xres', 3, @MCPTabpeXresDel, @MCPTabpeXresI
ns, @time)
FETCH NEXT FROM curInserted
INTO @ProjectIDIns, @MCPTableNameIns, @M
CPTableTypeIns, @MCPTableVersionMajIns, @MCPTableVersionMinIns, @MCPTableIns, @M
CPTableMarkIns, @MCPTabpeXresIns
FETCH NEXT FROM curDeleted
INTO @ProjectIDDel, @MCPTableNameDel, @M
CPTableTypeDel, @MCPTableVersionMajDel, @MCPTableVersionMinDel, @MCPTableDel, @M
CPTableMarkDel, @MCPTabpeXresDel
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTUTYPESTRUCTMEMBER](
[VariableTypeID] [int] NOT NULL,
[UTypeMemberNR] [int] NOT NULL,
[UTypeMemberName] [nvarchar](400) NOT NULL,
[UTypeMember_VarTypeID] [int] NOT NULL,
[LastChange] [datetime] NULL,
[Formatfitting] [int] NOT NULL,
[ScaleID] [int] NULL,
[VarFlags] [int] NOT NULL,
[VarProperty] [int] NOT NULL,
[OSDataSize] [int] NULL,
[ASDataType] [int] NULL,
[ASDataSize] [int] NULL,
[ASOffset] [int] NOT NULL,
[UTypeMemberMark] [int] NULL,
[UTypeMemberXres] [int] NULL,
[UTM_ScaleType] [int] NULL,
[UTM_ScaleParam1] [float] NULL,
[UTM_ScaleParam2] [float] NULL,
[UTM_ScaleParam3] [float] NULL,
[UTM_ScaleParam4] [float] NULL,
[UTM_MaxLimit] [nvarchar](256) NULL,
[UTM_MinLimit] [nvarchar](256) NULL,
[UTM_StartValue] [nvarchar](256) NULL,
[UTM_SubstValue] [nvarchar](256) NULL,
CONSTRAINT [PK__MCPTUTYPESTRUCTMEMBER] PRIMARY KEY CLUSTERED
(
[VARIABLETYPEID] ASC,
[UTYPEMEMBERNR] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
public const string DmUpdateTrigger_UTypeStructMember = @"CREATE TRIGGER WinCCAu
ditTagTrigger_MCPTUTypeStructMember_ForUpdate
ON MCPTUTYPESTRUCTMEMBER
WITH ENCRYPTION

FOR UPDATE
AS
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VariableTypeIDDel int
@UTypeMemberNRDel int
@UTypeMemberNameDel nvarchar(400)
@UTypeMember_VarTypeIDDel int
@LastChangeDel datetime
@FormatfittingDel int
@ScaleIDDel int
@VarFlagsDel int
@VarPropertyDel int
@OSDataSizeDel int
@ASDataTypeDel int
@ASDataSizeDel int
@ASOffsetDel int
@UTypeMemberMarkDel int
@UTypeMemberXresDel int
@UTM_ScaleTypeDel int
@UTM_ScaleParam1Del float
@UTM_ScaleParam2Del float
@UTM_ScaleParam3Del float
@UTM_ScaleParam4Del float
@UTM_MaxLimitDel nvarchar(256)
@UTM_MinLimitDel nvarchar(256)
@UTM_StartValueDel nvarchar(256)
@UTM_SubstValueDel nvarchar(256)

DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VariableTypeIDIns int
@UTypeMemberNRIns int
@UTypeMemberNameIns nvarchar(400)
@UTypeMember_VarTypeIDIns int
@LastChangeIns datetime
@FormatfittingIns int
@ScaleIDIns int
@VarFlagsIns int
@VarPropertyIns int
@OSDataSizeIns int
@ASDataTypeIns int
@ASDataSizeIns int
@ASOffsetIns int
@UTypeMemberMarkIns int
@UTypeMemberXresIns int
@UTM_ScaleTypeIns int
@UTM_ScaleParam1Ins float
@UTM_ScaleParam2Ins float
@UTM_ScaleParam3Ins float
@UTM_ScaleParam4Ins float
@UTM_MaxLimitIns nvarchar(256)
@UTM_MinLimitIns nvarchar(256)
@UTM_StartValueIns nvarchar(256)
@UTM_SubstValueIns nvarchar(256)

declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.VariableTypeID, i.UTypeMemberNR
, i.UTypeMemberName, i.UTypeMember_VarTypeID, i.LastChange, i.Formatfitting, i.S
caleID, i.VarFlags, i.VarProperty, i.OSDataSize, i.ASDataType, i.ASDataSize, i.A
SOffset, i.UTypeMemberMark, i.UTypeMemberXres, i.UTM_ScaleType, i.UTM_ScaleParam

1, i.UTM_ScaleParam2, i.UTM_ScaleParam3, i.UTM_ScaleParam4, i.UTM_MaxLimit, i.UT


M_MinLimit, i.UTM_StartValue, i.UTM_SubstValue from inserted i;
declare curDeleted CURSOR FOR
select d.VariableTypeID, d.UTypeMemberNR
, d.UTypeMemberName, d.UTypeMember_VarTypeID, d.LastChange, d.Formatfitting, d.S
caleID, d.VarFlags, d.VarProperty, d.OSDataSize, d.ASDataType, d.ASDataSize, d.A
SOffset, d.UTypeMemberMark, d.UTypeMemberXres, d.UTM_ScaleType, d.UTM_ScaleParam
1, d.UTM_ScaleParam2, d.UTM_ScaleParam3, d.UTM_ScaleParam4, d.UTM_MaxLimit, d.UT
M_MinLimit, d.UTM_StartValue, d.UTM_SubstValue from deleted d;
OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @VariableTypeIDIns, @UTypeMemberNRIns, @UTy
peMemberNameIns, @UTypeMember_VarTypeIDIns, @LastChangeIns, @FormatfittingIns, @
ScaleIDIns, @VarFlagsIns, @VarPropertyIns, @OSDataSizeIns, @ASDataTypeIns, @ASDa
taSizeIns, @ASOffsetIns, @UTypeMemberMarkIns, @UTypeMemberXresIns, @UTM_ScaleTyp
eIns, @UTM_ScaleParam1Ins, @UTM_ScaleParam2Ins, @UTM_ScaleParam3Ins, @UTM_ScaleP
aram4Ins, @UTM_MaxLimitIns, @UTM_MinLimitIns, @UTM_StartValueIns, @UTM_SubstValu
eIns
FETCH NEXT FROM curDeleted
INTO @VariableTypeIDDel, @UTypeMemberNRDel, @UTypeMemberNameDel,
@UTypeMember_VarTypeIDDel, @LastChangeDel, @FormatfittingDel, @ScaleIDDel, @Var
FlagsDel, @VarPropertyDel, @OSDataSizeDel, @ASDataTypeDel, @ASDataSizeDel, @ASOf
fsetDel, @UTypeMemberMarkDel, @UTypeMemberXresDel, @UTM_ScaleTypeDel, @UTM_Scale
Param1Del, @UTM_ScaleParam2Del, @UTM_ScaleParam3Del, @UTM_ScaleParam4Del, @UTM_M
axLimitDel, @UTM_MinLimitDel, @UTM_StartValueDel, @UTM_SubstValueDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@VariableTypeIDDel <> @VariableTypeIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'Variable Type ID', 3, @VariableTypeIDDel,
@VariableTypeIDIns, @time)
IF (@UTypeMemberNameDel <> @UTypeMemberNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, '', 1, '', 'UType Member Name', 3, @UTypeMemberNameDel, @UTypeMemberNa
meIns, @time)
IF (@UTypeMember_VarTypeIDDel <> @UTypeMember_VarTypeIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UType Member VarType ID', 3, @UTypeMember
_VarTypeIDDel, @UTypeMember_VarTypeIDIns, @time)
IF (@FormatfittingDel <> @FormatfittingIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'Formatfitting', 3, @FormatfittingDel, @Fo
rmatfittingIns, @time)

IF (@ScaleIDDel <> @ScaleIDIns)


INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'Scale ID', 3, @ScaleIDDel, @ScaleIDIns, @
time)
IF (@VarFlagsDel <> @VarFlagsIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'VarFlags', 3, @VarFlagsDel, @VarFlagsIns,
@time)
IF (@VarPropertyDel <> @VarPropertyIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'VarProperty', 3, @VarPropertyDel, @VarPro
pertyIns, @time)
IF (@OSDataSizeDel <> @OSDataSizeIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'OSDataSize', 3, @OSDataSizeDel, @OSDataSi
zeIns, @time)
IF (@ASDataTypeDel <> @ASDataTypeIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'ASDataType', 3, @ASDataTypeDel, @ASDataTy
peIns, @time)
IF (@ASDataSizeDel <> @ASDataSizeIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'ASDataSize', 3, @ASDataSizeDel, @ASDataSi
zeIns, @time)
IF (@ASOffsetDel <> @ASOffsetIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'ASOffset', 3, @ASOffsetDel, @ASOffsetIns,
@time)
IF (@UTypeMemberMarkDel <> @UTypeMemberMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTypeMember Mark', 3, @UTypeMemberMarkDel
, @UTypeMemberMarkIns, @time)
IF (@UTypeMemberXresDel <> @UTypeMemberXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert

y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem


berNRIns, @UTypeMemberNameIns, 1, '', 'UTypeMember Xres', 3, @UTypeMemberXresDel
, @UTypeMemberXresIns, @time)
IF (@UTM_ScaleTypeDel <> @UTM_ScaleTypeIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_Scale Type', 3, @UTM_ScaleTypeDel, @U
TM_ScaleTypeIns, @time)
IF (@UTM_ScaleParam1Del <> @UTM_ScaleParam1Ins)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_ScaleParam1', 3, @UTM_ScaleParam1Del,
@UTM_ScaleParam1Ins, @time)
IF (@UTM_ScaleParam2Del <> @UTM_ScaleParam2Ins)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_ScaleParam2', 3, @UTM_ScaleParam2Del,
@UTM_ScaleParam2Ins, @time)
IF (@UTM_ScaleParam3Del <> @UTM_ScaleParam3Ins)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_ScaleParam3', 3, @UTM_ScaleParam3Del,
@UTM_ScaleParam3Ins, @time)
IF (@UTM_ScaleParam4Del <> @UTM_ScaleParam4Ins)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_ScaleParam4', 3, @UTM_ScaleParam4Del,
@UTM_ScaleParam4Ins, @time)
IF (@UTM_MaxLimitDel <> @UTM_MaxLimitIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_Max Limit', 3, @UTM_MaxLimitDel, @UTM
_MaxLimitIns, @time)
IF (@UTM_MinLimitDel <> @UTM_MinLimitIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_Min Limit', 3, @UTM_MinLimitDel, @UTM
_MinLimitIns, @time)
IF (@UTM_StartValueDel <> @UTM_StartValueIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_Start Value', 3, @UTM_StartValueDel,
@UTM_StartValueIns, @time)

IF (@UTM_SubstValueDel <> @UTM_SubstValueIns)


INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@UTypeMem
berNRIns, @UTypeMemberNameIns, 1, '', 'UTM_Subst Value', 3, @UTM_SubstValueDel,
@UTM_SubstValueIns, @time)
FETCH NEXT FROM curInserted
INTO @VariableTypeIDIns, @UTypeMemberNRI
ns, @UTypeMemberNameIns, @UTypeMember_VarTypeIDIns, @LastChangeIns, @Formatfitti
ngIns, @ScaleIDIns, @VarFlagsIns, @VarPropertyIns, @OSDataSizeIns, @ASDataTypeIn
s, @ASDataSizeIns, @ASOffsetIns, @UTypeMemberMarkIns, @UTypeMemberXresIns, @UTM_
ScaleTypeIns, @UTM_ScaleParam1Ins, @UTM_ScaleParam2Ins, @UTM_ScaleParam3Ins, @UT
M_ScaleParam4Ins, @UTM_MaxLimitIns, @UTM_MinLimitIns, @UTM_StartValueIns, @UTM_S
ubstValueIns
FETCH NEXT FROM curDeleted
INTO @VariableTypeIDDel, @UTypeMemberNRD
el, @UTypeMemberNameDel, @UTypeMember_VarTypeIDDel, @LastChangeDel, @Formatfitti
ngDel, @ScaleIDDel, @VarFlagsDel, @VarPropertyDel, @OSDataSizeDel, @ASDataTypeDe
l, @ASDataSizeDel, @ASOffsetDel, @UTypeMemberMarkDel, @UTypeMemberXresDel, @UTM_
ScaleTypeDel, @UTM_ScaleParam1Del, @UTM_ScaleParam2Del, @UTM_ScaleParam3Del, @UT
M_ScaleParam4Del, @UTM_MaxLimitDel, @UTM_MinLimitDel, @UTM_StartValueDel, @UTM_S
ubstValueDel
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTVARGROUP](
[VarGroupID] [int] NOT NULL,
[VarGroupName] [nvarchar](400) NOT NULL,
[VarGroupLastChange] [datetime] NULL,
[ConnectionID] [int] NOT NULL,
[GroupMark] [int] NULL,
[GroupXres] [int] NULL,
CONSTRAINT [PK__MCPTVARGROUP] PRIMARY KEY CLUSTERED
(
[VARGROUPID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
public const string DmUpdateTrigger_MCPTVarGroup = @"CREATE TRIGGER WinCCAuditTa
gTrigger_MCPTVarGroup_ForUpdate
ON MCPTVARGROUP
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @VarGroupIDDel int
DECLARE @VarGroupNameDel nvarchar(400)
DECLARE @VarGroupLastChangeDel datetime
DECLARE @ConnectionIDDel int
DECLARE @GroupMarkDel int

DECLARE @GroupXresDel int


DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VarGroupIDIns int
@VarGroupNameIns nvarchar(400)
@VarGroupLastChangeIns datetime
@ConnectionIDIns int
@GroupMarkIns int
@GroupXresIns int

declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.VarGroupID, i.VarGroupName, i.V
arGroupLastChange, i.ConnectionID, i.GroupMark, i.GroupXres from inserted i;
declare curDeleted CURSOR FOR
select d.VarGroupID, d.VarGroupName, d.V
arGroupLastChange, d.ConnectionID, d.GroupMark, d.GroupXres from deleted d;
OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @VarGroupIDIns, @VarGroupNameIns, @VarGroup
LastChangeIns, @ConnectionIDIns, @GroupMarkIns, @GroupXresIns
FETCH NEXT FROM curDeleted
INTO @VarGroupIDDel, @VarGroupNameDel, @VarGroupLastChangeDel, @
ConnectionIDDel, @GroupMarkDel, @GroupXresDel
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@VarGroupNameDel <> @VarGroupNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@VarGroup
IDIns, '', 1, '', 'Var Group Name', 3, @VarGroupNameDel, @VarGroupNameIns, @time
)
IF (@ConnectionIDDel <> @ConnectionIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@VarGroup
IDIns, @VarGroupNameIns, 1, '', 'Connection ID', 3, @ConnectionIDDel, @Connectio
nIDIns, @time)
IF (@GroupMarkDel <> @GroupMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@VarGroup
IDIns, @VarGroupNameIns, 1, '', 'Group Mark', 3, @GroupMarkDel, @GroupMarkIns, @
time)
IF (@GroupXresDel <> @GroupXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@VarGroup
IDIns, @VarGroupNameIns, 1, '', 'Group Xres', 3, @GroupXresDel, @GroupXresIns, @
time)

FETCH NEXT FROM curInserted


INTO @VarGroupIDIns, @VarGroupNameIns, @
VarGroupLastChangeIns, @ConnectionIDIns, @GroupMarkIns, @GroupXresIns
FETCH NEXT FROM curDeleted
INTO @VarGroupIDDel, @VarGroupNameDel, @
VarGroupLastChangeDel, @ConnectionIDDel, @GroupMarkDel, @GroupXresDel
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================
CREATE TABLE [dbo].[MCPTVARIABLETYPE](
[VariableTypeID] [int] NOT NULL,
[VariableTypeName] [nvarchar](400) NOT NULL,
[VariableTypeLength] [int] NULL,
[VariableTypeClass] [nvarchar](20) NOT NULL,
[VartypeMark] [int] NULL,
[VartypeXres] [int] NULL,
[VartypeUnitID] [int] NULL,
CONSTRAINT [PK__MCPTVARIABLETYPE] PRIMARY KEY CLUSTERED
(
[VARIABLETYPEID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, AL
LOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
public const string DmUpdateTrigger_MCPTVariableType = @"CREATE TRIGGER WinCCAud
itTagTrigger_MCPTVariableType_ForUpdate
ON MCPTVARIABLETYPE
WITH ENCRYPTION
FOR UPDATE
AS
DECLARE @VariableTypeIDDel int
DECLARE @VariableTypeNameDel nvarchar(400)
DECLARE @VariableTypeLengthDel int
DECLARE @VariableTypeClassDel nvarchar(20)
DECLARE @VartypeMarkDel int
DECLARE @VartypeXresDel int
DECLARE @VartypeUnitIDDel int
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE
DECLARE

@VariableTypeIDIns int
@VariableTypeNameIns nvarchar(400)
@VariableTypeLengthIns int
@VariableTypeClassIns nvarchar(20)
@VartypeMarkIns int
@VartypeXresIns int
@VartypeUnitIDIns int

declare @time datetime


select @time = getdate()
declare curInserted CURSOR FOR
select i.VariableTypeID, i.VariableTypeN

ame, i.VariableTypeLength, i.VariableTypeClass, i.VartypeMark, i.VartypeXres, i.


VartypeUnitID from inserted i;
declare curDeleted CURSOR FOR
select d.VariableTypeID, d.VariableTypeN
ame, d.VariableTypeLength, d.VariableTypeClass, d.VartypeMark, d.VartypeXres, d.
VartypeUnitID from deleted d;
OPEN curInserted
OPEN curDeleted
FETCH NEXT FROM curInserted
INTO @VariableTypeIDIns, @VariableTypeNameIns, @
VariableTypeLengthIns, @VariableTypeClassIns, @VartypeMarkIns, @VartypeXresIns,
@VartypeUnitIDIns
FETCH NEXT FROM curDeleted
INTO @VariableTypeIDDel, @VariableTypeNameDel, @VariableTypeLeng
thDel, @VariableTypeClassDel, @VartypeMarkDel, @VartypeXresDel, @VartypeUnitIDDe
l
WHILE @@FETCH_STATUS = 0
BEGIN
IF (@VariableTypeNameDel <> @VariableTypeNameIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
TypeIDIns, '', 1, '', 'Variable Type Name', 3, @VariableTypeNameDel, @VariableTy
peNameIns, @time)
IF (@VariableTypeLengthDel <> @VariableTypeLengthIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
TypeIDIns, @VariableTypeNameIns, 1, '', 'VariableType Length', 3, @VariableTypeL
engthDel, @VariableTypeLengthIns, @time)
IF (@VariableTypeClassDel <> @VariableTypeClassIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
TypeIDIns, @VariableTypeNameIns, 1, '', 'VariableType Class', 3, @VariableTypeCl
assDel, @VariableTypeClassIns, @time)
IF (@VartypeMarkDel <> @VartypeMarkIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
TypeIDIns, @VariableTypeNameIns, 1, '', 'Vartype Mark', 3, @VartypeMarkDel, @Var
typeMarkIns, @time)
IF (@VartypeXresDel <> @VartypeXresIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]
([ItemId], [ItemName], [Module], [Subtype], [Propert
y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
TypeIDIns, @VariableTypeNameIns, 1, '', 'Vartype Xres', 3, @VartypeXresDel, @Var
typeXresIns, @time)
IF (@VartypeUnitIDDel <> @VartypeUnitIDIns)
INSERT INTO [WinCC_Audit].[dbo].[AuditUpdateData]

([ItemId], [ItemName], [Module], [Subtype], [Propert


y], [OperationType] ,[OldValue] ,[NewValue] ,[Timestamp_Info]) VALUES (@Variable
TypeIDIns, @VariableTypeNameIns, 1, '', 'Vartype Unit ID', 3, @VartypeUnitIDDel,
@VartypeUnitIDIns, @time)
FETCH NEXT FROM curInserted
INTO @VariableTypeIDIns, @VariableTypeNa
meIns, @VariableTypeLengthIns, @VariableTypeClassIns, @VartypeMarkIns, @VartypeX
resIns, @VartypeUnitIDIns
FETCH NEXT FROM curDeleted
INTO @VariableTypeIDDel, @VariableTypeNa
meDel, @VariableTypeLengthDel, @VariableTypeClassDel, @VartypeMarkDel, @VartypeX
resDel, @VartypeUnitIDDel
END
CLOSE curInserted
DEALLOCATE curInserted
CLOSE curDeleted
DEALLOCATE curDeleted";
================================================================================
=============================================================================

You might also like