因此,我在SQL Server中有一个非常简单的表(3列),我使用'Invoke-Sqlcmd‘来查询表中的信息,并将其放入各种表单字段中。这可以很好地工作,所以使用im使用的语法连接到数据库的基本前提似乎是正确的。
但是,当我将cmdlet的查询部分更改为“UPDATE”值时,我发现...数据库没有更新。但是,如果我在Powershell ISE中运行相同的代码,它会更新得很好。
类似地,当我尝试使用joins从一组表中提取数据时,查询在using中工作得很好,但在PS Studio的代码中,它不会像我之前成功的Invoke-Sqlcmd那样用结果填充变量。
在PS Studio中工作的代码:
$QueryResult = Invoke-Sqlcmd -ServerInstance 'server\instance' -Database 'Hardware' -Query "SELECT * FROM allocation where empno = $emp"
在PS Studio中不起作用但在ISE中起作用的代码:
Invoke-Sqlcmd -ServerInstance 'Server\instance' -Database 'Hardware' -Query "Update dbo.allocation set MaxAllowed = $updateinputint where empno = $emp"
在ISE中工作但不能在PS Studio中工作的代码:
$sqlcmd2 = "select dbo.CurrentLocation.Location, dbo.HwTable.HWCode, dbo.HwTable.HWDesc, COUNT(*) AS [COUNT]
from dbo.CurrentLocation
JOIN
dbo.MainTable on dbo.CurrentLocation.number = dbo.MainTable.Number
JOIN
dbo.HwTable on dbo.MainTable.HWCode = dbo.HwTable.HWCode
Where dbo.CurrentLocation.Location = HO
Group by
dbo.CurrentLocation.Location, dbo.HwTable.HWCode, dbo.HwTable.HWDesc"
$queryresult2 = Invoke-Sqlcmd -ServerInstance 'server\instance' -Database 'Hardware' -Query $sqlcmd2
起初,最后一个查询在ISE中无法工作,直到我删除了别名,然后它工作得很好。PS Studio是否有一些限制?还是我错过了一个小把戏?没有错误消息,调试通过了行,但是变量显示没有保存任何内容,或者在插入的地方,数据库不会更新。
提前感谢您的建议。
https://stackoverflow.com/questions/41270073
复制