当我从 SQL 查询构建数据表时,我想用 Select 插入一个 PowerShell 变量值。
从 TechNet 库中借用函数 invoke-sqlcmd2 并将其点源化。
$NewSequenceID = invoke-sqlcmd2 -ServerInstance "MyServer" -Database "MyDB" -Query "INSERT INTO [Sequence] (TimeStarted) SELECT GETDATE(); SELECT max(SequenceID) as SequenceID FROM [Sequence]" | foreach { $_.SequenceID }
这会生成一个新的序列 ID 并标记我们开始批处理的时间。结果将产生一个数字,该数字将识别此运行。使用“写入 $NewSequenceID”进行验证。我想将查询的后续结果与此 SequenceID 一起保存以进行分析。
然后我有这个:
$PollTime = Get-Date -format "yyyy-MM-dd HH:mm:ss"
然后我想这样做:(编辑:此语句不起作用-底部的错误消息)
$AuditUserOutput = invoke-sqlcmd2 -ServerInstance "MyServer2" -Database "MyDB2" -Query "SELECT $NewSequenceID, $PollTime, [USERID], [PID], [UDATE] FROM [MyTable]" -As 'Datatable'
并对表做一些事情,然后用 write-datatable 写。
如果我为前两个值选择 NULL 并从现有表中获取其他三个值,它工作正常。我想从前面的语句中添加 $NewSequenceID 和 $PollTime。
我已经阅读了十几页关于使用 `(反引号)、$、{} 等的内容,但我没有正确理解。有人可以帮助使用正确的语法将这些变量值插入到选择中吗?
PS 错误是:使用“1”参数调用“填充”的异常:“无效的伪列“$NewSequenceID”。”