问题标签 [invoke-sqlcmd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
89 浏览

powershell - 连接“字符串 + 变量 + 字符串”导致“字符串 + System.Data.DataRow + 字符串”

我正在尝试查询数据库,获取一个值,然后将该值与带有Export-Csv. 但是,虽然我可以看到当我尝试与字符串连接时我的变量正在被填充,但它更改为System.Data.DataRow

示例代码:

我的实际代码将做其他事情,取回数据并将其写入文件,我只是在动态命名文件中挣扎。

0 投票
0 回答
303 浏览

powershell - 凭据参数不适用于 Invoke-sqlcmd

我在 Powershell 中使用 Invoke-sqlcmd cmdlet 针对远程服务器运行保存在字符串中的 SQL 查询。

我已经包含了 credential 参数来请求域凭据以连接到 SQL 实例。

我已经在没有凭据参数的情况下对此进行了测试;而是以用户身份运行 Powershell 窗口,这可以正常工作,因此我确信用户的权限设置正确。

但是,我无法让它与凭据参数一起使用。

这是我收到的错误:

任何帮助表示赞赏。

0 投票
1 回答
870 浏览

powershell - 用于在 Azure Active Directory 中创建安全组以管理对 Azure SQL 的访问的 Powershell 脚本

下面是在 Azure AD 中创建组然后将 SQL 角色分配给组的脚本。该脚本依赖于 ODBC 17 和 sqlcmd 实用程序版本 15,这使得在 Azure devops 管道中使用它有点困难。我想知道是否有人知道我可以使用的任何替代 powershell cmdlet 在脚本中针对 SQL 运行查询。我尝试了 invoke-sqlcmd 但在尝试使用 onmicrosoft 帐户进行身份验证时遇到了问题。当使用您使用 SQL 数据库创建的 sql admin 用户时,我可以运行命令来设置目标数据库的权限,但无法运行在主数据库中创建组(来自外部提供者)的 sql 查询。所以我有点卡住了。想法是将脚本添加到部署管道并让它自动创建 AAD 组,这将允许运营团队管理用户对数据库的访问。请帮助 :-) <# .SYNOPSIS 创建用于控制对 SQL Server 和数据库资源的访问的 AAD 组

0 投票
1 回答
1865 浏览

sql-server - 通过函数抛出位置参数错误调用 sqlcmd

我正在尝试使用函数来运行查询,但它似乎不接受我的服务器实例并给出错误:“Run-SqlCommand:找不到接受参数'mydbservername'的位置参数。”

当我在函数之外执行相同的 invoke-sqlcmd 时,它工作正常。

功能:

在另一个脚本中,我定义了查询、服务器、数据库和用户/密码,并调用传递这些变量的函数:

当我这样做时,我得到了上面提到的错误:

“Run-SqlCommand:找不到接受参数‘mydbservername’的位置参数。”

如果我只是在脚本中直接运行 invoke-sqlcmd,我会尝试调用该函数——它工作得很好。

为什么直接调用时它起作用,但通过我的函数调用时不起作用?

好吧,我真的不明白为什么仍然希望有人帮助我理解....但是我通过更改参数来修复它...

当我改变它时它起作用了。我想也许我不明白“位置”或“参数集名称”。

0 投票
1 回答
718 浏览

sql-server - 使用 Powershell 从 SQL 输出大型 XML 文件

我有一个 Powershell 脚本,它调用 SQL Server 中的存储过程并将生成的 XML 直接输出到文件中。它适用于较小的测试文件,但会随着完整大小(~1.5gb 文件)而下降。

存储过程工作正常。我可以在 SQL Server 中调用它 - 问题是我必须在 SQL Server 中打开它,然后手动将其保存到文件中,然后编辑该文件以删除换行符。当我运行脚本时,它会在最后尝试删除中间文件时崩溃。但是,当我逐行运行它时,它会落在 invoke-sql 行。

逐行运行时,代码在 invoke-sqlcmd 行出现错误:

0 投票
1 回答
37 浏览

powershell - Start-Job PowerShell 创建两个作业

我想执行一组未包含的存储过程作为作业,以查看在将数据库设置为包含数据库后代码中是否存在任何问题。一段时间后,我想看看存储过程是否成功。但是,我看到创建了两个工作,而不是一个存储过程的工作。如何避免创造两个工作岗位?

当我看到工作列表时,使用Get-Job,我看到两个工作:

0 投票
2 回答
631 浏览

sql - 如何将 SQL 查询的结果保存在 Powershell 字符串变量中?

我使用 invoke-sqlcmd 在 MSSMS 上查询数据库。这没问题。我有一个循环运行查询 X 次,查询返回一个键码,例如。TGHDWS4。

我需要这个键码作为 powershell 中的字符串。然后我想将字符串添加到数组中。

我唯一尝试过的是使用invoke-sqlcmd。我在网上看到了使用连接创建和连接关闭方法的其他示例,但如果可能的话,我不想这样做。

下面的代码是我所在的位置。如何将键码(从查询返回)作为字符串添加到数组中?

0 投票
1 回答
2365 浏览

powershell - 从 Invoke-SqlCmd 捕获错误

我正在研究一个 Powershell 脚本,该脚本将 CSV 文件作为输入,其中包含有关每个服务器上的服务器和数据库的信息,以便为文件中的每个服务器和数据库创建一个特定的登录名和用户。该脚本尝试使用 Invoke-SqlCmd 使用 SQL 命令创建登录名和用户,然后将尝试的结果输出到新的 CSV 文件。如果登录名和用户添加成功,则输出数据并显示成功消息,如果任一命令失败,则应输出数据并显示失败消息。现在,如果出现 Invoke-SqlCmd 错误,则脚本不会确认失败并输出运行成功。

我想要一些帮助来弄清楚如何编写我的 Try/Catch 块,以便它们真正捕捉到 SQL 命令失败并输出正确的消息。

我当前的 Try/Catch 块用于这些部分:

运行上述代码时,我希望在运行 Invoke-SqlCmd 时发现问题,我收到以下错误,但脚本输出运行成功。

我知道 Invoke-Sqlcmd 和错误处理(sourcesource)存在已知问题,但是有什么方法可以让我的脚本在这种情况下输出正确的消息?现在,我被困在手动进入我的输出文件并将消息从成功更改为失败。这是在工作环境中,所以我希望我的脚本能够由其他人执行,而他们也不必进行编辑。我只是犯了一些简单的错误吗?

任何帮助表示赞赏!

0 投票
2 回答
381 浏览

azure-sql-server - 使用在 Azure 中使用 MFA 的帐户调用 Sqlcmd

你们中的任何人都知道使用 PowerShell 和已启用 MFA 的 Azure AD 帐户执行 SQL 命令的选项吗?什么是替代方案?我需要为此创建一个服务主体吗?

我没有运气,但只找到了这个 cmdlet, Add-SqlAzureAuthenticationContext 但是当我尝试运行Invoke-Sqlcmd时,我收到以下错误:

Invoke-Sqlcmd :目标主体名称不正确。无法生成 SSPI 上下文。

0 投票
1 回答
125 浏览

sql - Invoke-sqlcmd 不按行返回数据

Invoke-Sqlcmd 不按行返回数据,它单独列出每个项目

这是我正在使用的代码:

我得到这样的东西:

为什么它不成行出现?