private string TriggerCommand(string triggerName, string fromTableName, MapSimpleField field) { string triggerCommand = $"CREATE TRIGGER {triggerName}{Environment.NewLine}"; triggerCommand += $"ON {fromTableName} AFTER INSERT, UPDATE AS BEGIN{Environment.NewLine}"; triggerCommand += field.Chain.UpdatedFields(fromTableName).Any() ? "IF " + string.Join(" OR ", field.Chain.UpdatedFields(fromTableName) .Select(fld => $"UPDATE({fld})") .ToArray()) + " BEGIN" + Environment.NewLine : " BEGIN" + Environment.NewLine; triggerCommand += "INSERT INTO SyncDataObjectKey(primaryKey, tablename, objectkey, changetime)" + Environment.NewLine; triggerCommand += $"SELECT NEWID(), '{Layer}', {field.Chain.Alias}.primaryKey, GETDATE() "; triggerCommand += $"FROM {(field.Chain.TableName == fromTableName ? "inserted" : field.Chain.FullTableName)} {field.Chain.Alias} "; triggerCommand += TGHelper.DataBaseHelper.FromStatement(fromTableName, field.Chain) + Environment.NewLine; triggerCommand += "END" + Environment.NewLine; triggerCommand += "END;"; return(triggerCommand); }
/// <summary> /// </summary> public override string SetStatement(MapSimpleField field) { return($"SET {string.Join(", ", field.LayerObjectFields.Select(fmap => fmap.Key + " = " + field.Chain.ReplacePath(fmap.Value)).ToArray()) + Environment.NewLine}"); }
/// <summary> /// </summary> public abstract string SetStatement(MapSimpleField field);