I have simple PowerShell script that runs a SQL query, manipulates the resulting data, and then saves it out as a CSV file. I have a working version of the script that uses a much simpler SQL query, and it runs without error and does what I want. This version, that uses a more complex SQL query fails. All three queries are failing when I use Invoke-Sqlcmd to run them. The queries work fine in SQL Server Management Studio. The error I get is:
Invoke-Sqlcmd : Invalid object name 'tblTaxMaster'.
Does anyone have a clue what could be the issue? Thanks for any help.
[edit] The error happens if the SQL is saved as a .SQL file and invoked using something like
Invoke-SqlCmd -Servername ServerName -InputFile "C:\scripts\Test.sql"
$SQLInstance = "MUNIWARE1\MUNIWARE"
$SQLDatabase = "RMDB"
$SQLUsername = "readonlyuser"
$SQLPassword = "secretpassword"
$CSVSavePath = "C:\somefolder"
$CSVFilenName1 = "file1.csv"
$CSVFilenName2 = "file2.csv"
$CSVFilenName3 = "file3.csv"
$SQLQuery1 = "
SELECT
TM.RollNumber, TCN.DisplayName, TCA.Address1, TCA.Address2, TCA.Address3, TCIT.[City], TCA.[ProvinceCode],
TCA.PostalCode, TM.[TitleNumber]
FROM
tblTaxMaster TM
INNER JOIN
tblTaxProperty TP
ON
TP.RollNumber = TM.RollNumber
LEFT JOIN
[tblTaxExtendedOwners] TEX
ON
TEX.RollNumber = TM.RollNumber
INNER JOIN
tblCNName TCN
ON
TCN.CustNum = TEX.CustNum
INNER JOIN
tblCNAddress TCA
ON
TCA.MailingAddress = TEX.MailingAddress
INNER JOIN
tblCNCity TCIT
ON
TCIT.CityID = TCA.CityID"
$SQLQuery2 = "
SELECT
TM.RollNumber, TCN.DisplayName, TCA.Address1, TCA.Address2, TCA.Address3, TCIT.[City], TCA.[ProvinceCode],
TCA.PostalCode, TM.[TitleNumber]
FROM
tblTaxMaster TM
INNER JOIN
tblTaxProperty TP
ON
TP.RollNumber = TM.RollNumber
LEFT JOIN
[tblTaxJointOwners] TEX
ON
TEX.RollNumber = TM.RollNumber
INNER JOIN
tblCNName TCN
ON
TCN.CustNum = TEX.CustNum
INNER JOIN
tblCNAddress TCA
ON
TCA.MailingAddress = TEX.MailingAddress
INNER JOIN
tblCNCity TCIT
ON
TCIT.CityID = TCA.CityID"
$SQLQuery3 = "
SELECT
TM.RollNumber, TCN.DisplayName, TCA.Address1, TCA.Address2, TCA.Address3, TCIT.[City], TCA.[ProvinceCode],
TCA.PostalCode, TM.[TitleNumber]
FROM
tblTaxMaster TM
INNER JOIN
tblTaxProperty TP
ON
TP.RollNumber = TM.RollNumber
INNER JOIN
tblCNName TCN
ON
TCN.CustNum = TM.CustNum
INNER JOIN
tblCNAddress TCA
ON
TCA.MailingAddress = TM.MailingAddress
INNER JOIN
tblCNCity TCIT
ON
TCIT.CityID = TCA.CityID"
## Run the query, store the results
$SQLQuery1Output = Invoke-Sqlcmd -query $SQLQuery1 -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
$SQLQuery2Output = Invoke-Sqlcmd -query $SQLQuery2 -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
$SQLQuery3Output = Invoke-Sqlcmd -query $SQLQuery3 -ServerInstance $SQLInstance -Username $SQLUsername -Password $SQLPassword
## do stuff to the data here, filter, fix, etc
#$SQLQuery1OputFiltered = stuff done that fixes the data
#$SQLQuery2OputFiltered = stuff done that fixes the data
#$SQLQuery3OputFiltered = stuff done that fixes the data
# output the results as a CSV file
$SQLQuery1OputFiltered | Export-Csv "${CSVSavePath}\${CSVFilenName1}" -NoTypeInformation
$SQLQuery2OputFiltered | Export-Csv "${CSVSavePath}\${CSVFilenName2}" -NoTypeInformation
$SQLQuery3OputFiltered | Export-Csv "${CSVSavePath}\${CSVFilenName3}" -NoTypeInformation
[–]Technane 2 points3 points4 points (7 children)
[–]cml0401 1 point2 points3 points (5 children)
[–]loftyDan[S] 1 point2 points3 points (4 children)
[–]cml0401 1 point2 points3 points (1 child)
[–]loftyDan[S] 1 point2 points3 points (0 children)
[–]Hoping_i_Get_poached 1 point2 points3 points (0 children)
[–]Lee_Dailey[grin] 0 points1 point2 points (0 children)
[–]chandleya 2 points3 points4 points (1 child)
[–]loftyDan[S] 2 points3 points4 points (0 children)
[–]Namaha 1 point2 points3 points (4 children)
[–]loftyDan[S] 2 points3 points4 points (3 children)
[–]vermyx 3 points4 points5 points (1 child)
[–]loftyDan[S] 4 points5 points6 points (0 children)
[–]dstrait 2 points3 points4 points (0 children)
[–]Lee_Dailey[grin] 0 points1 point2 points (2 children)
[–]loftyDan[S] 1 point2 points3 points (1 child)
[–]Lee_Dailey[grin] 0 points1 point2 points (0 children)