假设我碰巧没有能力创建存储过程,但我必须定期运行相同的查询。我是否可以将我的查询放在 .txt 文档中,并能够通过调用它从 Powershell 运行它?我将使用什么语法来运行 myquery.txt?换句话说,什么是最终运行无法在应该被组合成一个查询的查询上使用存储过程的方法?
假设我碰巧没有能力创建存储过程,但我必须定期运行相同的查询。我是否可以将我的查询放在 .txt 文档中,并能够通过调用它从 Powershell 运行它?我将使用什么语法来运行 myquery.txt?换句话说,什么是最终运行无法在应该被组合成一个查询的查询上使用存储过程的方法?
我注意到您标记了这个问题
netezza
,但我不确定 SQLCMD(在接受的答案中建议)是否适用于 Netezza 或仅适用于 SQL Server。另一种方法是使用Aginity Workbench for Netezza,它提供无人值守的命令行选项:与 Netezza 上的 sqlcmd 等效的是 nzsql,它可以安装在 Windows 和 UNIX 上。我们运行通过 nzsql 执行 SQL 语句的自动化 powershell 脚本,并且运行良好:)
这取决于您的 Powershell 版本,但您有几个选择。我倾向于根据场景使用其中的几个,但在你的情况下,为什么不
SQLCMD.EXE
从你的 powershell 脚本中调用 a 呢?它具有最大的兼容性,它的错误更少,兼容性更好Invoke-SQLCMD
,而且在DSC
我还没有看到 MS 使用之外osql
。它看起来像这样:否则,您必须从 v12 及更高版本安装 SQL Server 功能包,然后使用
Invoke-SQLCMD
它有一些兼容性问题并且除了我发现的某些情况外不会提供太多好处。您还可以通过 Feature Pack 获得完整的 SMO 功能,但它太过分了,并且对于简单的查询来说配置开销太大。