-
Notifications
You must be signed in to change notification settings - Fork 1
/
02e_Export_CSV.ps1
51 lines (42 loc) · 1.68 KB
/
02e_Export_CSV.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#Please substitute the default values for the below parameters with
# what you have on your system!
param(
[string]$ServerInstance = 'localhost',
[string]$DatabaseName = 'DataStudio4',
[string]$TableListSQL = 'SELECT name FROM sys.tables',
[string]$OutputFolder = 'C:\1Presentations\Practical_PowerShell\02_Generate_CSharpClasses\Output'
)
#Get the list of tables in the database to generate c# models for
$tables = Invoke-Sqlcmd2 `
-ServerInstance $ServerInstance `
-Database $DatabaseName `
-Query $TableListSQL `
-As DataRow `
-Verbose
foreach ($table in $tables)
{
$tableName = $table[0]
$outputFile = "$OutputFolder\$tableName.csv"
Write-Verbose "Generating for $tableName to file $outputFile"
"Ouputing for $tableName to $outputFile"
#----------------------------------------------------
#Only selecting the top 100 rows....for illustration
#----------------------------------------------------
Invoke-Sqlcmd2 `
-ServerInstance $ServerInstance `
-Database $DatabaseName `
-Query "SELECT TOP 100 * FROM $tableName" `
-as DataRow `
-Verbose |
Select-Object * |
Export-Csv `
-LiteralPath $outputFile `
-Force `
-NoTypeInformation
}
#
#Show the output generated and delete the files
#
#
#Get-ChildItem $OutputFolder | Sort-Object -Property Length -Descending | Select-Object -First 1 | Get-Content | Select-Object -First 100
#Get-Item $GeneratorLocation\Output\*.csv | Remove-Item