2025-06-06 11:40:04 +02:00

58 lines
1.6 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 `
-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
}