59 lines
1.7 KiB
PowerShell
59 lines
1.7 KiB
PowerShell
param(
|
|
[Parameter(Mandatory=$true)]
|
|
[string]$TableName
|
|
)
|
|
|
|
function Install-RequiredModules {
|
|
$requiredModule = "SqlServer"
|
|
|
|
if (-not (Get-Module -ListAvailable -Name $requiredModule)) {
|
|
Write-Host "Installazione modulo $requiredModule..."
|
|
try {
|
|
Install-Module -Name $requiredModule -Force -AllowClobber -Scope CurrentUser
|
|
}
|
|
catch {
|
|
Write-Error "Errore durante l'installazione del modulo $requiredModule. Eseguire PowerShell come amministratore e riprovare."
|
|
exit 1
|
|
}
|
|
}
|
|
}
|
|
|
|
# Verifica e installa moduli necessari
|
|
Install-RequiredModules
|
|
|
|
# Importa configurazione
|
|
. "$PSScriptRoot\conf.ps1"
|
|
|
|
$OutputFile = Join-Path $PSScriptRoot "..\extract\$TableName.csv"
|
|
|
|
$Query = "SELECT * FROM $TableName"
|
|
|
|
try {
|
|
# Import SQL Server module if not already loaded
|
|
if (-not (Get-Module -Name SqlServer)) {
|
|
Import-Module SqlServer
|
|
}
|
|
|
|
Write-Host "Connessione a $env:dbHostInput, database $env:dbName..."
|
|
|
|
# Esegui la query e salva i risultati
|
|
$result = Invoke-Sqlcmd -ServerInstance $env:dbHostInput `
|
|
-Database $env:dbName `
|
|
-Username $env:dbUser `
|
|
-Password $env:dbPassword `
|
|
-TrustServerCertificate `
|
|
-Query $Query
|
|
|
|
if ($result) {
|
|
$result | Export-Csv -Path $OutputFile -NoTypeInformation -Delimiter ";" -Encoding UTF8
|
|
} else {
|
|
throw "Nessun dato trovato nella tabella $TableName"
|
|
}
|
|
|
|
Write-Host "Dati esportati con successo in: $OutputFile"
|
|
}
|
|
catch {
|
|
Write-Error "Errore durante l'estrazione dei dati: $_"
|
|
exit 1
|
|
}
|