cosine83

PowerShell SQL

Dec 23rd, 2013
212
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #Database value variables
  2. $DBNull = [System.DBNull]::Value.Equals('NULL')
  3. $RowBad = "$dt.Rows -lt 24"
  4. $RowGood = "$dt.Rows -eq 24"
  5.  
  6. #SQL server and database to use
  7. $ServerName = "Server"
  8. $DatabaseName = "Database"
  9.  
  10. #Get previous day's date
  11. $Date = (get-date).AddDays(-1).ToShortDateString()
  12.  
  13. #Queries to run using the date retrieved from the $Date variable
  14. $Query1 = "SELECT * FROM view_periodprogressionlog WHERE date = '$Date'"
  15. $Query2 = "proc_startover '$Date'"
  16. $Query3 = "proc_startperiod '$Date',1"
  17.  
  18. #This is most likely unneeded but keeping just in case
  19. #$SelectRow = "with Database AS(select row_number() over(order by ProcessID) as 'row', * from view_periodprogressionlog) select * from Database where row=2"
  20.  
  21. #Timeout parameters
  22. $QueryTimeout = 120
  23. $Query3Timeout = 3600
  24. $ConnectionTimeout = 30
  25.  
  26. #Action of connecting to the Database and executing the query and returning results if there were any.
  27. $conn=New-Object System.Data.SqlClient.SQLConnection
  28. $ConnectionString = "Server={0};Database={1};Integrated Security=True;Connect Timeout={2}" -f $ServerName,$DatabaseName,$ConnectionTimeout
  29. $conn.ConnectionString=$ConnectionString
  30. $conn.Open()
  31. $cmdQ1=New-Object system.Data.SqlClient.SqlCommand($Query1,$conn)
  32. $cmdQ1.CommandTimeout=$QueryTimeout
  33. $ds=New-Object system.Data.DataSet
  34. $da=New-Object system.Data.SqlClient.SqlDataAdapter($cmdQ1)
  35. $dt=New-Object Data.DataTable
  36. $dt=$ds.Tables[0]
  37. [void]$da.fill($ds)
  38. $conn.Close()
  39. $ds.Tables
  40.  if($da.Fill($ds):DBNull.Equals($RowBad) | out-null)
  41. {
  42.             $conn.ConnectionString=$ConnectionString
  43.             $conn.Open()
  44.             $cmdQ2=New-Object system.Data.SqlClient.SqlCommand($Query2,$conn)
  45.             $cmdQ2.CommandTimeout=$QueryTimeout
  46.             $ds=New-Object system.Data.DataSet
  47.             $da=New-Object system.Data.SqlClient.SqlDataAdapter($cmdQ2)
  48.             [void]$da.fill($ds)
  49.             $cmdQ2=New-Object system.Data.SqlClient.SqlCommand($Query2,$conn)
  50.             $cmdQ2.CommandTimeout=$QueryTimeout
  51.             $ds=New-Object system.Data.DataSet
  52.             $da=New-Object system.Data.SqlClient.SqlDataAdapter($cmdQ2)
  53.             [void]$da.fill($ds)
  54.             $cmdQ3=New-Object system.Data.SqlClient.SqlCommand($Query3,$conn)
  55.             $cmdQ3.CommandTimeout=$Query3Timeout
  56.             $ds=New-Object system.Data.DataSet
  57.             $da=New-Object system.Data.SqlClient.SqlDataAdapter($cmdQ3)
  58.             [void]$da.fill($ds)
  59.             $cmdQ1=New-Object system.Data.SqlClient.SqlCommand($Query1,$conn)
  60.             $cmdQ1.CommandTimeout=$QueryTimeout
  61.             $ds=New-Object system.Data.DataSet
  62.             $da=New-Object system.Data.SqlClient.SqlDataAdapter($cmdQ1)
  63.             [void]$da.fill($ds)
  64.             $conn.Close()
  65.             $ds.Tables | Export-Csv C:\Scripts\PowerShell\SQL\DB.csv
  66.             Write-Host "Please check the Scripts folder for the results of this script."
  67. }
  68. else($da.Fill($ds):DBNull.Equals($RowGood) | out-null)
  69. {
  70.             Write-Host "The database values are fine, please call the help desk for further assistance with troubleshooting the issue."
  71. }
Advertisement
Add Comment
Please, Sign In to add comment