public static JObject GetSQLMergeStatementCore(HttpRequest req, Logging logging) { string requestBody = new StreamReader(req.Body).ReadToEndAsync().Result; dynamic data = JsonConvert.DeserializeObject(requestBody); JObject Root = new JObject(); TaskMetaDataDatabase TMD = new TaskMetaDataDatabase(); using (SqlConnection _con = TMD.GetSqlConnection()) { string _token = Shared._AzureAuthenticationCredentialProvider.GetAzureRestApiToken("https://database.windows.net/"); String g = Guid.NewGuid().ToString().Replace("-", ""); _con.AccessToken = _token; JArray arrStage = (JArray)data["Stage"]; string _StagingTableSchema = data["StagingTableSchema"].ToString(); string _StagingTableName = "#Temp_" + data["StagingTableName"].ToString() + g.ToString(); string _CreateStatementStage = GenerateSQLStatementTemplates.GetCreateTable(arrStage, _StagingTableSchema, _StagingTableName, false); TMD.ExecuteSql(_CreateStatementStage, _con); JArray arrTarget = (JArray)data["Target"]; string _TargetTableSchema = data["TargetTableSchema"].ToString(); string _TargetTableName = "#Temp_" + data["TargetTableName"].ToString() + g.ToString(); string _CreateStatementTarget = GenerateSQLStatementTemplates.GetCreateTable(arrTarget, _TargetTableSchema, _TargetTableName, false); TMD.ExecuteSql(_CreateStatementTarget, _con); string _MergeStatement = TMD.GenerateMergeSQL(_StagingTableSchema, _StagingTableName, _TargetTableSchema, _TargetTableName, _con, true, logging); string fullStagingTableName = string.Format("[{0}].[{1}]", _StagingTableSchema, _StagingTableName.Replace("#Temp_", "").Replace(g.ToString(), "")); string fullTargetTableName = string.Format("[{0}].[{1}]", _TargetTableSchema, _TargetTableName.Replace("#Temp_", "").Replace(g.ToString(), "")); _MergeStatement = _MergeStatement.Replace(_TargetTableName, fullTargetTableName); _MergeStatement = _MergeStatement.Replace(_StagingTableName, fullStagingTableName); //Add Select for ADF Lookup Activity _MergeStatement += Environment.NewLine + "Select 1 "; Root["MergeStatement"] = _MergeStatement; logging.LogInformation("GetSQLMergeStatement Function complete."); } return(Root); }