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 }