sync
This commit is contained in:
@@ -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
|
||||
##############################################
|
||||
Reference in New Issue
Block a user