首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从作为SQL作业一部分运行的PowerShell脚本中捕获数据?

如何从作为SQL作业一部分运行的PowerShell脚本中捕获数据?
EN

Database Administration用户
提问于 2020-02-13 12:46:39
回答 1查看 555关注 0票数 0

我有一个从代理作业中调用的PowerShell脚本,它打开一个.CSV文件,将它转换成.CSV,并将.CSV文件保存在特定的位置,准备好用大容量插入导入它。

我需要做的是在加载文件之前先计算文件中的行数。当文件超过一定数量的行时,我希望将该文件加载到另一个表中。这在PowerShell中很简单,我可以将计数输入到PowerShell变量中,没有问题。

但是,我不知道如何将该变量读入SQL,以便在批量插入过程中使用它。

因此,我的问题是:当从SQL作业运行PowerShell时,如何从该PowerShell脚本的输出中读取值,无论是表、临时表还是变量,我都不介意哪一个?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2020-02-13 14:41:10

感谢@Tony给出了一个评论的答案。在这里,它被提升为一个实际的答案,所以希望下一个提出这个问题的人找到它:

我在我的“自动化”数据库中创建了一个名为"ImportRowCount“的表,其中有一个名为"RowCount”的列,并在其中插入了一个数字0的行

接下来,我将这一行添加到我的Powershell脚本中:

代码语言:javascript
复制
invoke-sqlcmd -ServerInstance SQLServerHostName -Query "UPDATE Automation.dbo.ImportRowCount SET RowCount = $NumRows"

(将"SQLServerHostName“替换为实际服务器的主机名)

因此,现在我的Powershell脚本每次运行时都会用$NumRows变量的值更新这一行。

这是完美的,因为我可以在运行剩下的进程之前读取该表的内容,并且我可以使用它作为决策点,根据文件中的行数将我的代码分支到不同的路径。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/259616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档