问题标签 [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.
powershell - 连接“字符串 + 变量 + 字符串”导致“字符串 + System.Data.DataRow + 字符串”
我正在尝试查询数据库,获取一个值,然后将该值与带有Export-Csv
. 但是,虽然我可以看到当我尝试与字符串连接时我的变量正在被填充,但它更改为System.Data.DataRow
示例代码:
我的实际代码将做其他事情,取回数据并将其写入文件,我只是在动态命名文件中挣扎。
powershell - 凭据参数不适用于 Invoke-sqlcmd
我在 Powershell 中使用 Invoke-sqlcmd cmdlet 针对远程服务器运行保存在字符串中的 SQL 查询。
我已经包含了 credential 参数来请求域凭据以连接到 SQL 实例。
我已经在没有凭据参数的情况下对此进行了测试;而是以用户身份运行 Powershell 窗口,这可以正常工作,因此我确信用户的权限设置正确。
但是,我无法让它与凭据参数一起使用。
这是我收到的错误:
任何帮助表示赞赏。
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 组
sql-server - 通过函数抛出位置参数错误调用 sqlcmd
我正在尝试使用函数来运行查询,但它似乎不接受我的服务器实例并给出错误:“Run-SqlCommand:找不到接受参数'mydbservername'的位置参数。”
当我在函数之外执行相同的 invoke-sqlcmd 时,它工作正常。
功能:
在另一个脚本中,我定义了查询、服务器、数据库和用户/密码,并调用传递这些变量的函数:
当我这样做时,我得到了上面提到的错误:
“Run-SqlCommand:找不到接受参数‘mydbservername’的位置参数。”
如果我只是在脚本中直接运行 invoke-sqlcmd,我会尝试调用该函数——它工作得很好。
为什么直接调用时它起作用,但通过我的函数调用时不起作用?
好吧,我真的不明白为什么仍然希望有人帮助我理解....但是我通过更改参数来修复它...
当我改变它时它起作用了。我想也许我不明白“位置”或“参数集名称”。
sql-server - 使用 Powershell 从 SQL 输出大型 XML 文件
我有一个 Powershell 脚本,它调用 SQL Server 中的存储过程并将生成的 XML 直接输出到文件中。它适用于较小的测试文件,但会随着完整大小(~1.5gb 文件)而下降。
存储过程工作正常。我可以在 SQL Server 中调用它 - 问题是我必须在 SQL Server 中打开它,然后手动将其保存到文件中,然后编辑该文件以删除换行符。当我运行脚本时,它会在最后尝试删除中间文件时崩溃。但是,当我逐行运行它时,它会落在 invoke-sql 行。
逐行运行时,代码在 invoke-sqlcmd 行出现错误:
powershell - Start-Job PowerShell 创建两个作业
我想执行一组未包含的存储过程作为作业,以查看在将数据库设置为包含数据库后代码中是否存在任何问题。一段时间后,我想看看存储过程是否成功。但是,我看到创建了两个工作,而不是一个存储过程的工作。如何避免创造两个工作岗位?
当我看到工作列表时,使用Get-Job
,我看到两个工作:
sql - 如何将 SQL 查询的结果保存在 Powershell 字符串变量中?
我使用 invoke-sqlcmd 在 MSSMS 上查询数据库。这没问题。我有一个循环运行查询 X 次,查询返回一个键码,例如。TGHDWS4。
我需要这个键码作为 powershell 中的字符串。然后我想将字符串添加到数组中。
我唯一尝试过的是使用invoke-sqlcmd。我在网上看到了使用连接创建和连接关闭方法的其他示例,但如果可能的话,我不想这样做。
下面的代码是我所在的位置。如何将键码(从查询返回)作为字符串添加到数组中?
powershell - 从 Invoke-SqlCmd 捕获错误
我正在研究一个 Powershell 脚本,该脚本将 CSV 文件作为输入,其中包含有关每个服务器上的服务器和数据库的信息,以便为文件中的每个服务器和数据库创建一个特定的登录名和用户。该脚本尝试使用 Invoke-SqlCmd 使用 SQL 命令创建登录名和用户,然后将尝试的结果输出到新的 CSV 文件。如果登录名和用户添加成功,则输出数据并显示成功消息,如果任一命令失败,则应输出数据并显示失败消息。现在,如果出现 Invoke-SqlCmd 错误,则脚本不会确认失败并输出运行成功。
我想要一些帮助来弄清楚如何编写我的 Try/Catch 块,以便它们真正捕捉到 SQL 命令失败并输出正确的消息。
我当前的 Try/Catch 块用于这些部分:
运行上述代码时,我希望在运行 Invoke-SqlCmd 时发现问题,我收到以下错误,但脚本输出运行成功。
我知道 Invoke-Sqlcmd 和错误处理(source,source)存在已知问题,但是有什么方法可以让我的脚本在这种情况下输出正确的消息?现在,我被困在手动进入我的输出文件并将消息从成功更改为失败。这是在工作环境中,所以我希望我的脚本能够由其他人执行,而他们也不必进行编辑。我只是犯了一些简单的错误吗?
任何帮助表示赞赏!
azure-sql-server - 使用在 Azure 中使用 MFA 的帐户调用 Sqlcmd
你们中的任何人都知道使用 PowerShell 和已启用 MFA 的 Azure AD 帐户执行 SQL 命令的选项吗?什么是替代方案?我需要为此创建一个服务主体吗?
我没有运气,但只找到了这个 cmdlet,
Add-SqlAzureAuthenticationContext
但是当我尝试运行Invoke-Sqlcmd
时,我收到以下错误:
Invoke-Sqlcmd :目标主体名称不正确。无法生成 SSPI 上下文。
sql - Invoke-sqlcmd 不按行返回数据
Invoke-Sqlcmd 不按行返回数据,它单独列出每个项目
这是我正在使用的代码:
我得到这样的东西:
为什么它不成行出现?