This commit is contained in:
Zack Meier
2026-04-15 15:42:41 -05:00
parent 74edcc4d9a
commit 03dba08135
146 changed files with 9119 additions and 1 deletions
+511
View File
@@ -0,0 +1,511 @@
# 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
##############################################