Reputation: 2309
I created array $SQL_output
. If I do a foreach
loop, it displays the contents
foreach ($j in $SQL_output){
write-host $j
}
Output
118543
44021
84992
46888
When I add it to SQL statement
$SQL_UPDATE = "BEGIN
IF NOT EXISTS (SELECT 1
FROM dbo.Stats
WHERE Date_of_Download = CAST(GETDATE() AS DATE))
BEGIN
INSERT INTO dbo.Stats (Date_of_Download, Windows_SEP_11, Mac_SEP_11, Windows_SEP_12, Mac_SEP_12)
VALUES (CAST(GETDATE() AS DATE), $SQL_output[0],$SQL_output[1],$SQL_output[2],$SQL_output[3])
END
END
"
The string expands to
BEGIN
IF NOT EXISTS (SELECT 1
FROM dbo.Stats
WHERE Date_of_Download = CAST(GETDATE() AS DATE))
BEGIN
INSERT INTO dbo.Stats (Date_of_Download, Windows_SEP_11, Mac_SEP_11, Windows_SEP_12, Mac_SEP_12)
VALUES (CAST(GETDATE() AS DATE), 118543 44021 84992 46888[0],118543 44021 84992 46888[1],118543 44021 84992 46888[2],118543 44021 84992 46888[3])
END
END
How to fix?
Upvotes: 1
Views: 61
Reputation: 12483
Replace $SQL_output[x] with $(SQL_output[x])
$SQL_UPDATE = "BEGIN
IF NOT EXISTS (SELECT 1
FROM dbo.Stats
WHERE Date_of_Download = CAST(GETDATE() AS DATE))
BEGIN
INSERT INTO dbo.Stats (Date_of_Download, Windows_SEP_11, Mac_SEP_11, Windows_SEP_12, Mac_SEP_12)
VALUES (CAST(GETDATE() AS DATE), $($SQL_output[0]),$($SQL_output[1]),$($SQL_output[2]),$($SQL_output[3]))
END
END
"
Upvotes: 1