PowerShell/Scripts/convert-sql2csv.ps1

43 lines
1.6 KiB
PowerShell
Raw Normal View History

2021-09-27 10:38:12 +02:00
<#
2021-07-13 21:10:02 +02:00
.SYNOPSIS
2021-09-24 17:19:49 +02:00
Converts a SQL database table to a .CSV file
2021-10-04 21:29:23 +02:00
.DESCRIPTION
2021-10-16 16:50:10 +02:00
This script converts a SQL database table to a .CSV file.
.PARAMETER server
Specifies the server's hostname or IP address
.PARAMETER database
Specifies the database name
.PARAMETER username
Specifies the user name
.PARAMETER password
Specifies the password
.PARAMETER query
Specifies the SQL query
2021-07-13 21:10:02 +02:00
.EXAMPLE
2021-09-24 17:19:49 +02:00
PS> ./convert-sql2csv
2021-08-29 17:50:03 +02:00
.NOTES
Author: Markus Fleschutz · License: CC0
2021-07-13 21:10:02 +02:00
.LINK
https://github.com/fleschutz/PowerShell
2021-04-10 10:40:03 +02:00
#>
2021-07-15 15:51:22 +02:00
param([string]$server = "", [string]$database = "", [string]$username = "", [string]$password = "", [string]$query = "")
2021-04-10 10:40:03 +02:00
try {
2021-07-15 15:51:22 +02:00
if ($server -eq "") { $server = read-host "Enter the hostname/IP address of the SQL server" }
if ($database -eq "") { $database = read-host "Enter the database name" }
if ($username -eq "") { $username = read-host "Enter the database username" }
if ($password -eq "") { $password = read-host "Enter the database user password" }
if ($query -eq "") { $query = read-host "Enter the database query" }
2021-04-10 10:40:03 +02:00
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential ($username, $secpasswd)
$csvfilepath = "$PSScriptRoot\sqlserver_table.csv"
$result = Invoke-SqlServerQuery -Credential $creds -ConnectionTimeout 10000 -Database $database -Server $server -Sql $query -CommandTimeout 10000
$result | Export-Csv $csvfilepath -NoTypeInformation
2021-09-27 10:09:45 +02:00
exit 0 # success
2021-04-10 10:40:03 +02:00
} catch {
2021-09-16 20:19:10 +02:00
"⚠️ Error: $($Error[0]) ($($MyInvocation.MyCommand.Name):$($_.InvocationInfo.ScriptLineNumber))"
2021-04-10 10:40:03 +02:00
exit 1
}