Files
Sandbox/ServiceNow-RitmDB.ps1
Zack Meier 03dba08135 sync
2026-04-15 15:42:41 -05:00

511 lines
32 KiB
PowerShell
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Configure variables below for connecting to the SQL database
################################################
$CSVFileName = "D:\OneDrive - State of North Dakota\ServiceNow\RitmDump-Application Server.csv"
$SQLInstance = "itdintsql22p1.nd.gov\intsql22p1"
$SQLDatabase = "ITD-Systems-Automation"
$SQLTable = "ServiceNow_RitmDump_ApplicationServerMK2"
$SQLTempDatabase = "ITD-Systems-Automation"
$SQLTempTable = "ServiceNow_RitmDump_ApplicationServerMK2_temp"
############################################################################################
# Nothing to change below this line, comments provided if you need/want to change anything
############################################################################################
##############################################
# Prompting for SQL credentials
##############################################
#$SQLCredentials = Get-Credential -Message "Enter your SQL username & password"
#$SQLUsername = $SQLCredentials.UserName
#$SQLPassword = $SQLCredentials.GetNetworkCredential().Password
$SQLCredentials = $PrvCred
##############################################
# Start of time taken benchmark
##############################################
$Start = Get-Date
##############################################
# Checking if SqlServer module is already installed, if not installing it
##############################################
$SQLModuleCheck = Get-Module -ListAvailable SqlServer
if ($SQLModuleCheck -eq $null) {
Write-Host "SqlServer Module Not Found - Installing"
# Not installed, trusting PS Gallery to remove prompt on install
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
# Installing module
Install-Module -Name SqlServer Scope CurrentUser -Confirm:$false -AllowClobber
}
##############################################
# Importing SqlServer module
##############################################
Import-Module SqlServer
##############################################
# Creating Temp SQL Table
##############################################
"Creating SQL Table $SQLTempTable for CSV Import"
$SQLCreateTempTable = "USE [ITD-Systems-Automation]
CREATE TABLE $SQLTempTable (
sys_id char(32) PRIMARY KEY,
number char(11),
opened_at datetime,
requested_for varchar(255),
sys_updated_on datetime,
short_description varchar(max),
active varchar(255),
activity_due varchar(255),
additional_assignee_list varchar(255),
additional_comments varchar(max),
add_change_disaster_recovery varchar(255),
agency_name varchar(255),
application_info varchar(255),
application_name varchar(255),
approval_history varchar(max),
assigned_to varchar(255),
assignment_group varchar(255),
backordered varchar(255),
billable varchar(255),
business_duration varchar(255),
business_service varchar(255),
calendar_duration varchar(255),
cat_item varchar(255),
cat_item_display_name varchar(255),
cidr_block varchar(255),
closed_at datetime,
closed_by varchar(255),
close_notes varchar(max),
cmdb_ci varchar(255),
comments varchar(max),
configuration_item varchar(255),
contact_type varchar(255),
contract varchar(255),
correlation_display varchar(255),
correlation_id varchar(255),
data_center varchar(255),
disaster_recovery_requirements varchar(255),
disk_10 varchar(255),
disk_11 varchar(255),
disk_12 varchar(255),
disk_13 varchar(255),
disk_14 varchar(255),
disk_15 varchar(255),
disk_16 varchar(255),
disk_1_os varchar(255),
disk_2_swap_disk varchar(255),
disk_3 varchar(255),
disk_4 varchar(255),
disk_5 varchar(255),
disk_6 varchar(255),
disk_7 varchar(255),
disk_8 varchar(255),
disk_9 varchar(255),
dr_protection varchar(255),
due_date varchar(255),
environment varchar(255),
escalation varchar(255),
estimated_delivery datetime,
expected_start varchar(255),
follow_up varchar(255),
group_list varchar(255),
host_name varchar(255),
impact varchar(255),
knowledge varchar(255),
licensing_restrictions varchar(255),
location varchar(255),
made_sla varchar(255),
memory_gb varchar(255),
opened_by varchar(255),
operating_system varchar(255),
order_guide varchar(255),
parent varchar(255),
pa_zone varchar(255),
price varchar(255),
priority varchar(255),
processors varchar(255),
quantity_sourced varchar(255),
reassignment_count varchar(255),
received varchar(255),
recurring_frequency varchar(255),
recurring_price varchar(255),
replaces_vm varchar(255),
request_type varchar(255),
required_date varchar(255),
require_hosting_quote varchar(255),
route_reason varchar(255),
sc_catalog varchar(255),
secure varchar(255),
server_name varchar(255),
server_type varchar(255),
service_offering varchar(255),
skills varchar(255),
sla_due varchar(255),
special_instructions varchar(255),
stage varchar(255),
startup_priority varchar(255),
state varchar(255),
support_hours varchar(255),
sys_class_name varchar(255),
sys_created_by varchar(255),
sys_created_on datetime,
sys_domain varchar(255),
sys_domain_path varchar(255),
sys_mod_count varchar(255),
sys_tags varchar(255),
sys_updated_by varchar(255),
target_os_version_linux varchar(255),
target_os_version_windows varchar(255),
target_platform varchar(255),
task_effective_number varchar(255),
team_lead varchar(255),
time_worked varchar(255),
universal_request varchar(255),
upon_approval varchar(255),
upon_reject varchar(255),
urgency varchar(255),
user_input varchar(255),
u_approval_flag varchar(255),
u_change_incident varchar(255),
u_effective_date varchar(255),
u_on_hold_reason varchar(255),
vlan_id varchar(255),
vm_work_needed varchar(255),
v_alt_contact varchar(255),
v_approval_charge_code varchar(255),
v_approval_department varchar(255),
v_approval_department_code varchar(255),
v_approval_division varchar(255),
v_approval_division_code varchar(255),
v_manager varchar(255),
v_requested_by varchar(255),
v_requested_for varchar(255),
v_user_email varchar(255),
v_user_in_servicenow varchar(255),
v_user_phone varchar(255),
watch_list varchar(255),
work_end varchar(255),
work_notes varchar(max),
work_start varchar(255)
);"
#Invoke-Sqlcmd -Query $SQLCreateTempTable -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
#Invoke-ITDSqlCmdJob -ServerInstance $SInstance -Database ITD-Systems-Automation -Credential $PrvCred -Query
Invoke-ITDSqlCmdJob -ServerInstance $SqlInstance -Database ITD-Systems-Automation -Credential $PrvCred -Query $SQLCreateTempTable
##############################################
# Importing CSV and processing data
##############################################
$CSVImport = Import-Csv -Path $CSVFileName
$CSVRowCount = $CSVImport.Count
##############################################
# ForEach CSV Line Inserting a row into the Temp SQL table
##############################################
"Inserting $CSVRowCount rows from CSV into SQL Table $SQLTempTable"
ForEach ($CSVLine in $CSVImport) {
Write-Warning -Message ("Start " + $CSVLine.number)
# Setting variables for the CSV line, ADD ALL 170 possible CSV columns here
$sys_id = $CSVLine.sys_id
$number = $CSVLine.number
$opened_at = $CSVLine.opened_at
$requested_for = $CSVLine.requested_for
$sys_updated_on = $CSVLine.sys_updated_on
$short_description = $CSVLine.short_description
$active = $CSVLine.active
$activity_due = $CSVLine.activity_due
$additional_assignee_list = $CSVLine.additional_assignee_list
$additional_comments = $CSVLine.additional_comments
$add_change_disaster_recovery = $CSVLine.add_change_disaster_recovery
$agency_name = $CSVLine.agency_name
$application_info = $CSVLine.application_info
$application_name = $CSVLine.application_name
$approval_history = $CSVLine.approval_history
$assigned_to = $CSVLine.assigned_to
$assignment_group = $CSVLine.assignment_group
$backordered = $CSVLine.backordered
$billable = $CSVLine.billable
$business_duration = $CSVLine.business_duration
$business_service = $CSVLine.business_service
$calendar_duration = $CSVLine.calendar_duration
$cat_item = $CSVLine.cat_item
$cat_item_display_name = $CSVLine.cat_item_display_name
$cidr_block = $CSVLine.cidr_block
$closed_at = $CSVLine.closed_at
$closed_by = $CSVLine.closed_by
$close_notes = $CSVLine.close_notes
$cmdb_ci = $CSVLine.cmdb_ci
$comments = $CSVLine.comments
$configuration_item = $CSVLine.configuration_item
$contact_type = $CSVLine.contact_type
$contract = $CSVLine.contract
$correlation_display = $CSVLine.correlation_display
$correlation_id = $CSVLine.correlation_id
$data_center = $CSVLine.data_center
$disaster_recovery_requirements = $CSVLine.disaster_recovery_requirements
$disk_10 = $CSVLine.disk_10
$disk_11 = $CSVLine.disk_11
$disk_12 = $CSVLine.disk_12
$disk_13 = $CSVLine.disk_13
$disk_14 = $CSVLine.disk_14
$disk_15 = $CSVLine.disk_15
$disk_16 = $CSVLine.disk_16
$disk_1_os = $CSVLine.disk_1_os
$disk_2_swap_disk = $CSVLine.disk_2_swap_disk
$disk_3 = $CSVLine.disk_3
$disk_4 = $CSVLine.disk_4
$disk_5 = $CSVLine.disk_5
$disk_6 = $CSVLine.disk_6
$disk_7 = $CSVLine.disk_7
$disk_8 = $CSVLine.disk_8
$disk_9 = $CSVLine.disk_9
$dr_protection = $CSVLine.dr_protection
$due_date = $CSVLine.due_date
$environment = $CSVLine.environment
$escalation = $CSVLine.escalation
$estimated_delivery = $CSVLine.estimated_delivery
$expected_start = $CSVLine.expected_start
$follow_up = $CSVLine.follow_up
$group_list = $CSVLine.group_list
$host_name = $CSVLine.host_name
$impact = $CSVLine.impact
$knowledge = $CSVLine.knowledge
$licensing_restrictions = $CSVLine.licensing_restrictions
$location = $CSVLine.location
$made_sla = $CSVLine.made_sla
$memory_gb = $CSVLine.memory_gb
$opened_by = $CSVLine.opened_by
$operating_system = $CSVLine.operating_system
$order_guide = $CSVLine.order_guide
$parent = $CSVLine.parent
$pa_zone = $CSVLine.pa_zone
$price = $CSVLine.price
$priority = $CSVLine.priority
$processors = $CSVLine.processors
$quantity_sourced = $CSVLine.quantity_sourced
$reassignment_count = $CSVLine.reassignment_count
$received = $CSVLine.received
$recurring_frequency = $CSVLine.recurring_frequency
$recurring_price = $CSVLine.recurring_price
$replaces_vm = $CSVLine.replaces_vm
$request_type = $CSVLine.request_type
$required_date = $CSVLine.required_date
$require_hosting_quote = $CSVLine.require_hosting_quote
$route_reason = $CSVLine.route_reason
$sc_catalog = $CSVLine.sc_catalog
$secure = $CSVLine.secure
$server_name = $CSVLine.server_name
$server_type = $CSVLine.server_type
$service_offering = $CSVLine.service_offering
$skills = $CSVLine.skills
$sla_due = $CSVLine.sla_due
$special_instructions = $CSVLine.special_instructions
$stage = $CSVLine.stage
$startup_priority = $CSVLine.startup_priority
$state = $CSVLine.state
$support_hours = $CSVLine.support_hours
$sys_class_name = $CSVLine.sys_class_name
$sys_created_by = $CSVLine.sys_created_by
$sys_created_on = $CSVLine.sys_created_on
$sys_domain = $CSVLine.sys_domain
$sys_domain_path = $CSVLine.sys_domain_path
$sys_mod_count = $CSVLine.sys_mod_count
$sys_tags = $CSVLine.sys_tags
$sys_updated_by = $CSVLine.sys_updated_by
$target_os_version_linux = $CSVLine.target_os_version_linux
$target_os_version_windows = $CSVLine.target_os_version_windows
$target_platform = $CSVLine.target_platform
$task_effective_number = $CSVLine.task_effective_number
$team_lead = $CSVLine.team_lead
$time_worked = $CSVLine.time_worked
$universal_request = $CSVLine.universal_request
$upon_approval = $CSVLine.upon_approval
$upon_reject = $CSVLine.upon_reject
$urgency = $CSVLine.urgency
$user_input = $CSVLine.user_input
$u_approval_flag = $CSVLine.u_approval_flag
$u_change_incident = $CSVLine.u_change_incident
$u_effective_date = $CSVLine.u_effective_date
$u_on_hold_reason = $CSVLine.u_on_hold_reason
$vlan_id = $CSVLine.vlan_id
$vm_work_needed = $CSVLine.vm_work_needed
$v_alt_contact = $CSVLine.v_alt_contact
$v_approval_charge_code = $CSVLine.v_approval_charge_code
$v_approval_department = $CSVLine.v_approval_department
$v_approval_department_code = $CSVLine.v_approval_department_code
$v_approval_division = $CSVLine.v_approval_division
$v_approval_division_code = $CSVLine.v_approval_division_code
$v_manager = $CSVLine.v_manager
$v_requested_by = $CSVLine.v_requested_by
$v_requested_for = $CSVLine.v_requested_for
$v_user_email = $CSVLine.v_user_email
$v_user_in_servicenow = $CSVLine.v_user_in_servicenow
$v_user_phone = $CSVLine.v_user_phone
$watch_list = $CSVLine.watch_list
$work_end = $CSVLine.work_end
$work_notes = $CSVLine.work_notes
$work_start = $CSVLine.work_start
$SQLInsert = "USE [$SQLTempDatabase]
INSERT INTO $SQLTempTable (sys_id, number, opened_at, requested_for, sys_updated_on, short_description, active, activity_due, additional_assignee_list, additional_comments, add_change_disaster_recovery, agency_name, application_info, application_name, approval_history, assigned_to, assignment_group, backordered, billable, business_duration, business_service, calendar_duration, cat_item, cat_item_display_name, cidr_block, closed_at, closed_by, close_notes, cmdb_ci, comments, configuration_item, contact_type, contract, correlation_display, correlation_id, data_center, disaster_recovery_requirements, disk_10, disk_11, disk_12, disk_13, disk_14, disk_15, disk_16, disk_1_os, disk_2_swap_disk, disk_3, disk_4, disk_5, disk_6, disk_7, disk_8, disk_9, dr_protection, due_date, environment, escalation, estimated_delivery, expected_start, follow_up, group_list, host_name, impact, knowledge, licensing_restrictions, location, made_sla, memory_gb, opened_by, operating_system, order_guide, parent, pa_zone, price, priority, processors, quantity_sourced, reassignment_count, received, recurring_frequency, recurring_price, replaces_vm, request_type, required_date, require_hosting_quote, route_reason, sc_catalog, secure, server_name, server_type, service_offering, skills, sla_due, special_instructions, stage, startup_priority, state, support_hours, sys_class_name, sys_created_by, sys_created_on, sys_domain, sys_domain_path, sys_mod_count, sys_tags, sys_updated_by, target_os_version_linux, target_os_version_windows, target_platform, task_effective_number, team_lead, time_worked, universal_request, upon_approval, upon_reject, urgency, user_input, u_approval_flag, u_change_incident, u_effective_date, u_on_hold_reason, vlan_id, vm_work_needed, v_alt_contact, v_approval_charge_code, v_approval_department, v_approval_department_code, v_approval_division, v_approval_division_code, v_manager, v_requested_by, v_requested_for, v_user_email, v_user_in_servicenow, v_user_phone, watch_list, work_end, work_notes, work_start)
VALUES('$sys_id', '$number', '$opened_at', '$requested_for', '$sys_updated_on', '$short_description', '$active', '$activity_due', '$additional_assignee_list', '$additional_comments', '$add_change_disaster_recovery', '$agency_name', '$application_info', '$application_name', '$approval_history', '$assigned_to', '$assignment_group', '$backordered', '$billable', '$business_duration', '$business_service', '$calendar_duration', '$cat_item', '$cat_item_display_name', '$cidr_block', '$closed_at', '$closed_by', '$close_notes', '$cmdb_ci', '$comments', '$configuration_item', '$contact_type', '$contract', '$correlation_display', '$correlation_id', '$data_center', '$disaster_recovery_requirements', '$disk_10', '$disk_11', '$disk_12', '$disk_13', '$disk_14', '$disk_15', '$disk_16', '$disk_1_os', '$disk_2_swap_disk', '$disk_3', '$disk_4', '$disk_5', '$disk_6', '$disk_7', '$disk_8', '$disk_9', '$dr_protection', '$due_date', '$environment', '$escalation', '$estimated_delivery', '$expected_start', '$follow_up', '$group_list', '$host_name', '$impact', '$knowledge', '$licensing_restrictions', '$location', '$made_sla', '$memory_gb', '$opened_by', '$operating_system', '$order_guide', '$parent', '$pa_zone', '$price', '$priority', '$processors', '$quantity_sourced', '$reassignment_count', '$received', '$recurring_frequency', '$recurring_price', '$replaces_vm', '$request_type', '$required_date', '$require_hosting_quote', '$route_reason', '$sc_catalog', '$secure', '$server_name', '$server_type', '$service_offering', '$skills', '$sla_due', '$special_instructions', '$stage', '$startup_priority', '$state', '$support_hours', '$sys_class_name', '$sys_created_by', '$sys_created_on', '$sys_domain', '$sys_domain_path', '$sys_mod_count', '$sys_tags', '$sys_updated_by', '$target_os_version_linux', '$target_os_version_windows', '$target_platform', '$task_effective_number', '$team_lead', '$time_worked', '$universal_request', '$upon_approval', '$upon_reject', '$urgency', '$user_input', '$u_approval_flag', '$u_change_incident', '$u_effective_date', '$u_on_hold_reason', '$vlan_id', '$vm_work_needed', '$v_alt_contact', '$v_approval_charge_code', '$v_approval_department', '$v_approval_department_code', '$v_approval_division', '$v_approval_division_code', '$v_manager', '$v_requested_by', '$v_requested_for', '$v_user_email', '$v_user_in_servicenow', '$v_user_phone', '$watch_list', '$work_end', '$work_notes', '$work_start');"
# Running the INSERT Query
#Invoke-Sqlcmd -Query $SQLInsert -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
Invoke-ITDSqlCmdJob -ServerInstance $SQLInstance -Database $SQLDatabase -Query $SQLInsert -Credential $PrvCred
# End of ForEach CSV line below
}
# End of ForEach CSV line above
##############################################
# Merging data from Temp Table to Target Table using SQL MERGE
##############################################
"Merging SQL Table Data from $SQLTempTable to $SQLTable"
# For more info, I.E to add DELETE as part of the MERGE, read: https://www.essentialsql.com/introduction-merge-statement/
$SQLMerge = "MERGE [$SQLDatabase].[dbo].[$SQLTable] Target
USING [$SQLTempDatabase].[dbo].[$SQLTempTable] Source
ON (Target.sys_id = Source.sys_id)
WHEN MATCHED
THEN UPDATE
SET Target.sys_id = Source.sys_id,
Target.number = Source.number,
Target.opened_at = Source.opened_at,
Target.requested_for = Source.requested_for,
Target.sys_updated_on = Source.sys_updated_on,
Target.short_description = Source.short_description,
Target.active = Source.active,
Target.activity_due = Source.activity_due,
Target.additional_assignee_list = Source.additional_assignee_list,
Target.additional_comments = Source.additional_comments,
Target.add_change_disaster_recovery = Source.add_change_disaster_recovery,
Target.agency_name = Source.agency_name,
Target.application_info = Source.application_info,
Target.application_name = Source.application_name,
Target.approval_history = Source.approval_history,
Target.assigned_to = Source.assigned_to,
Target.assignment_group = Source.assignment_group,
Target.backordered = Source.backordered,
Target.billable = Source.billable,
Target.business_duration = Source.business_duration,
Target.business_service = Source.business_service,
Target.calendar_duration = Source.calendar_duration,
Target.cat_item = Source.cat_item,
Target.cat_item_display_name = Source.cat_item_display_name,
Target.cidr_block = Source.cidr_block,
Target.closed_at = Source.closed_at,
Target.closed_by = Source.closed_by,
Target.close_notes = Source.close_notes,
Target.cmdb_ci = Source.cmdb_ci,
Target.comments = Source.comments,
Target.configuration_item = Source.configuration_item,
Target.contact_type = Source.contact_type,
Target.contract = Source.contract,
Target.correlation_display = Source.correlation_display,
Target.correlation_id = Source.correlation_id,
Target.data_center = Source.data_center,
Target.disaster_recovery_requirements = Source.disaster_recovery_requirements,
Target.disk_10 = Source.disk_10,
Target.disk_11 = Source.disk_11,
Target.disk_12 = Source.disk_12,
Target.disk_13 = Source.disk_13,
Target.disk_14 = Source.disk_14,
Target.disk_15 = Source.disk_15,
Target.disk_16 = Source.disk_16,
Target.disk_1_os = Source.disk_1_os,
Target.disk_2_swap_disk = Source.disk_2_swap_disk,
Target.disk_3 = Source.disk_3,
Target.disk_4 = Source.disk_4,
Target.disk_5 = Source.disk_5,
Target.disk_6 = Source.disk_6,
Target.disk_7 = Source.disk_7,
Target.disk_8 = Source.disk_8,
Target.disk_9 = Source.disk_9,
Target.dr_protection = Source.dr_protection,
Target.due_date = Source.due_date,
Target.environment = Source.environment,
Target.escalation = Source.escalation,
Target.estimated_delivery = Source.estimated_delivery,
Target.expected_start = Source.expected_start,
Target.follow_up = Source.follow_up,
Target.group_list = Source.group_list,
Target.host_name = Source.host_name,
Target.impact = Source.impact,
Target.knowledge = Source.knowledge,
Target.licensing_restrictions = Source.licensing_restrictions,
Target.location = Source.location,
Target.made_sla = Source.made_sla,
Target.memory_gb = Source.memory_gb,
Target.opened_by = Source.opened_by,
Target.operating_system = Source.operating_system,
Target.order_guide = Source.order_guide,
Target.parent = Source.parent,
Target.pa_zone = Source.pa_zone,
Target.price = Source.price,
Target.priority = Source.priority,
Target.processors = Source.processors,
Target.quantity_sourced = Source.quantity_sourced,
Target.reassignment_count = Source.reassignment_count,
Target.received = Source.received,
Target.recurring_frequency = Source.recurring_frequency,
Target.recurring_price = Source.recurring_price,
Target.replaces_vm = Source.replaces_vm,
Target.request_type = Source.request_type,
Target.required_date = Source.required_date,
Target.require_hosting_quote = Source.require_hosting_quote,
Target.route_reason = Source.route_reason,
Target.sc_catalog = Source.sc_catalog,
Target.secure = Source.secure,
Target.server_name = Source.server_name,
Target.server_type = Source.server_type,
Target.service_offering = Source.service_offering,
Target.skills = Source.skills,
Target.sla_due = Source.sla_due,
Target.special_instructions = Source.special_instructions,
Target.stage = Source.stage,
Target.startup_priority = Source.startup_priority,
Target.state = Source.state,
Target.support_hours = Source.support_hours,
Target.sys_class_name = Source.sys_class_name,
Target.sys_created_by = Source.sys_created_by,
Target.sys_created_on = Source.sys_created_on,
Target.sys_domain = Source.sys_domain,
Target.sys_domain_path = Source.sys_domain_path,
Target.sys_mod_count = Source.sys_mod_count,
Target.sys_tags = Source.sys_tags,
Target.sys_updated_by = Source.sys_updated_by,
Target.target_os_version_linux = Source.target_os_version_linux,
Target.target_os_version_windows = Source.target_os_version_windows,
Target.target_platform = Source.target_platform,
Target.task_effective_number = Source.task_effective_number,
Target.team_lead = Source.team_lead,
Target.time_worked = Source.time_worked,
Target.universal_request = Source.universal_request,
Target.upon_approval = Source.upon_approval,
Target.upon_reject = Source.upon_reject,
Target.urgency = Source.urgency,
Target.user_input = Source.user_input,
Target.u_approval_flag = Source.u_approval_flag,
Target.u_change_incident = Source.u_change_incident,
Target.u_effective_date = Source.u_effective_date,
Target.u_on_hold_reason = Source.u_on_hold_reason,
Target.vlan_id = Source.vlan_id,
Target.vm_work_needed = Source.vm_work_needed,
Target.v_alt_contact = Source.v_alt_contact,
Target.v_approval_charge_code = Source.v_approval_charge_code,
Target.v_approval_department = Source.v_approval_department,
Target.v_approval_department_code = Source.v_approval_department_code,
Target.v_approval_division = Source.v_approval_division,
Target.v_approval_division_code = Source.v_approval_division_code,
Target.v_manager = Source.v_manager,
Target.v_requested_by = Source.v_requested_by,
Target.v_requested_for = Source.v_requested_for,
Target.v_user_email = Source.v_user_email,
Target.v_user_in_servicenow = Source.v_user_in_servicenow,
Target.v_user_phone = Source.v_user_phone,
Target.watch_list = Source.watch_list,
Target.work_end = Source.work_end,
Target.work_notes = Source.work_notes,
Target.work_start = Source.work_start
WHEN NOT MATCHED BY TARGET
THEN INSERT (sys_id, number, opened_at, requested_for, sys_updated_on, short_description, active, activity_due, additional_assignee_list, additional_comments, add_change_disaster_recovery, agency_name, application_info, application_name, approval_history, assigned_to, assignment_group, backordered, billable, business_duration, business_service, calendar_duration, cat_item, cat_item_display_name, cidr_block, closed_at, closed_by, close_notes, cmdb_ci, comments, configuration_item, contact_type, contract, correlation_display, correlation_id, data_center, disaster_recovery_requirements, disk_10, disk_11, disk_12, disk_13, disk_14, disk_15, disk_16, disk_1_os, disk_2_swap_disk, disk_3, disk_4, disk_5, disk_6, disk_7, disk_8, disk_9, dr_protection, due_date, environment, escalation, estimated_delivery, expected_start, follow_up, group_list, host_name, impact, knowledge, licensing_restrictions, location, made_sla, memory_gb, opened_by, operating_system, order_guide, parent, pa_zone, price, priority, processors, quantity_sourced, reassignment_count, received, recurring_frequency, recurring_price, replaces_vm, request_type, required_date, require_hosting_quote, route_reason, sc_catalog, secure, server_name, server_type, service_offering, skills, sla_due, special_instructions, stage, startup_priority, state, support_hours, sys_class_name, sys_created_by, sys_created_on, sys_domain, sys_domain_path, sys_mod_count, sys_tags, sys_updated_by, target_os_version_linux, target_os_version_windows, target_platform, task_effective_number, team_lead, time_worked, universal_request, upon_approval, upon_reject, urgency, user_input, u_approval_flag, u_change_incident, u_effective_date, u_on_hold_reason, vlan_id, vm_work_needed, v_alt_contact, v_approval_charge_code, v_approval_department, v_approval_department_code, v_approval_division, v_approval_division_code, v_manager, v_requested_by, v_requested_for, v_user_email, v_user_in_servicenow, v_user_phone, watch_list, work_end, work_notes, work_start)
VALUES (Source.sys_id, Source.number, Source.opened_at, Source.requested_for, Source.sys_updated_on, Source.short_description, Source.active, Source.activity_due, Source.additional_assignee_list, Source.additional_comments, Source.add_change_disaster_recovery, Source.agency_name, Source.application_info, Source.application_name, Source.approval_history, Source.assigned_to, Source.assignment_group, Source.backordered, Source.billable, Source.business_duration, Source.business_service, Source.calendar_duration, Source.cat_item, Source.cat_item_display_name, Source.cidr_block, Source.closed_at, Source.closed_by, Source.close_notes, Source.cmdb_ci, Source.comments, Source.configuration_item, Source.contact_type, Source.contract, Source.correlation_display, Source.correlation_id, Source.data_center, Source.disaster_recovery_requirements, Source.disk_10, Source.disk_11, Source.disk_12, Source.disk_13, Source.disk_14, Source.disk_15, Source.disk_16, Source.disk_1_os, Source.disk_2_swap_disk, Source.disk_3, Source.disk_4, Source.disk_5, Source.disk_6, Source.disk_7, Source.disk_8, Source.disk_9, Source.dr_protection, Source.due_date, Source.environment, Source.escalation, Source.estimated_delivery, Source.expected_start, Source.follow_up, Source.group_list, Source.host_name, Source.impact, Source.knowledge, Source.licensing_restrictions, Source.location, Source.made_sla, Source.memory_gb, Source.opened_by, Source.operating_system, Source.order_guide, Source.parent, Source.pa_zone, Source.price, Source.priority, Source.processors, Source.quantity_sourced, Source.reassignment_count, Source.received, Source.recurring_frequency, Source.recurring_price, Source.replaces_vm, Source.request_type, Source.required_date, Source.require_hosting_quote, Source.route_reason, Source.sc_catalog, Source.secure, Source.server_name, Source.server_type, Source.service_offering, Source.skills, Source.sla_due, Source.special_instructions, Source.stage, Source.startup_priority, Source.state, Source.support_hours, Source.sys_class_name, Source.sys_created_by, Source.sys_created_on, Source.sys_domain, Source.sys_domain_path, Source.sys_mod_count, Source.sys_tags, Source.sys_updated_by, Source.target_os_version_linux, Source.target_os_version_windows, Source.target_platform, Source.task_effective_number, Source.team_lead, Source.time_worked, Source.universal_request, Source.upon_approval, Source.upon_reject, Source.urgency, Source.user_input, Source.u_approval_flag, Source.u_change_incident, Source.u_effective_date, Source.u_on_hold_reason, Source.vlan_id, Source.vm_work_needed, Source.v_alt_contact, Source.v_approval_charge_code, Source.v_approval_department, Source.v_approval_department_code, Source.v_approval_division, Source.v_approval_division_code, Source.v_manager, Source.v_requested_by, Source.v_requested_for, Source.v_user_email, Source.v_user_in_servicenow, Source.v_user_phone, Source.watch_list, Source.work_end, Source.work_notes, Source.work_start);"
#Invoke-Sqlcmd -Query $SQLMerge -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
Invoke-ITDSqlCmdJob -ServerInstance $SqlInstance -Database $SQLDatabase -Query $SQLMerge -Credential $PrvCred
##############################################
# Dropping Temp Table using SQL DROP
##############################################
"Dropping SQL Table $SQLTempTable as no longer needed"
$SQLDrop = "USE [$SQLTempDatabase]
DROP TABLE $SQLTempTable;"
#Invoke-Sqlcmd -Query $SQLDrop -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
Invoke-ITDSqlCmdJob -ServerInstance $SqlInstance -Database $SQLDatabase -Query $SQLDrop -Credential $PrvCred
##############################################