Sqlcmd 和 Invoke-Sqlcmd 之间的区别

问题描述 投票:0回答:2

我正在尝试学习 PowerShell 中的 Sqlcmd 实用程序来运行 SQL 查询,特别是用于数据库管理。

使用

Version 15.0.1300.359 NT

但是我很困惑,

Sqlcmd
Invoke-Sqlcmd
有什么区别?

为什么这个命令有效:

Invoke-Sqlcmd -ServerInstance myinstance -Database AdventureWorks2017 "select top 3 * from [Person].[BusinessEntity]"

这个不起作用:

Invoke-Sqlcmd -S myinstance -d AdventureWorks2017 "select top 3 * from [Person].[BusinessEntity]"

通过查询帮助,我可以清楚地看到我应该能够使用所有这些变量:

enter image description here

powershell t-sql database-administration sqlcmd
2个回答
5
投票

如果您正在使用 PowerShell 脚本编写,我建议尽可能使用该模块。

Invoke-SqlCmd
将输出对象,这肯定更容易操作。


0
投票

-S 在invoke-sqlcmd 中不明确,在引用您的服务器/实例时使用-ServerInstance。 SQLCMD 使用与 Invoke-Sqlcmd 不同的参数/选项集,并且无法使用 sqlcmd 中的大多数缩写。使用 Microsoft Invoke-Sqlcmd 参考中所述的设置:https://learn.microsoft.com/en-us/powershell/module/sqlserver/invoke-sqlcmd?view=sqlserver-ps

© www.soinside.com 2019 - 2024. All rights reserved.