问题标签 [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 投票
1 回答
1227 浏览

powershell - 为什么我的 PowerShell Invoke-SQLCMD InputFile 出现错误?

我正在尝试从 PowerShell 脚本调用 SQLCMD,但 Powershell 似乎不喜欢我如何将 -InputFile 传递给 Invoke-Sqlcmd。我的代码看起来像这样:

$files 永远不会为空,因为打印 $files[0].FullName 会输出类似“D:\foo\foo.sql”的字符串。当我的应用程序到达这一行时,它会抛出一个错误,指向我使用 Invoke-Sqlcmd 和“$files”中的“$”字符的同一行。

我收到这两条错误消息:

我如何提供要运行的脚本的文件路径有问题吗?什么是正确的格式。我也尝试使用 .PSPath 而不是 .FullName 但我收到一条错误消息,指出不支持文件路径。

0 投票
1 回答
151 浏览

powershell - 带有字符参数的 Powershell -invokesql

我有读取 excel 文件并在 sql 数据库中搜索值的代码。这是代码的一部分:

如果我用 number 查询(SELECT * FROM dbo.tbl1 where id = 3),就可以了:

如果我使用查询执行:

我收到此错误:

Invoke-Sqlcmd : ''' 附近的语法不正确。消息 102,级别 15,状态 1,过程,第 1 行。在第 8 行 char:1 + Invoke-Sqlcmd -serverinstance $DatabaseServerName -Database $Database ... + ~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~ + CategoryInfo : InvalidOperation: (:) [Invoke-Sqlcmd], SqlPowerShellSqlExecutionException + FullyQualifiedErrorId : SqlError,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

当我调试时,对我来说,输出看起来不错。我可以将它粘贴到服务器上,并且 select 语句可以正常工作:

出了什么问题?

0 投票
2 回答
867 浏览

powershell - 如何在 PowerShell 中仅捕获 SQL 超时错误?

我试图在 PowerShell 5.1 的脚本中仅捕获超时错误。错误打印出执行超时,但是当我打印出错误名称时,它会返回[Microsoft.SqlServer.Management.PowerShell.SqlPowerShellSqlExecutionException]. 这会捕获超时错误,但也会捕获其他错误。有没有办法只指定超时错误?

没有错误catch

Invoke-Sqlcmd:执行超时已过期。在操作完成之前超时时间已过或服务器没有响应。

0 投票
0 回答
677 浏览

powershell - 如何解决运行 Invoke-sqlcmd 命令以使用 Invoke-SQLCMD 和 Powershell 6 连接到 Azure Datawarehouse 的错误?

我正在尝试从 Azure Datawarehouse/Synapse 运行简单的选择语句。我正在使用 Azure Active Directory 帐户进行身份验证,在我的情况下我不能使用 sql server 身份验证。

此命令在 Powershell 5.1.16299(非 dotnet 核心版本)中运行良好。

代码

Powershell 版本: 主要小补丁 PreReleaseLabel BuildLabel


6 2 4

SQL Server 模块版本 ModuleType 版本名称 ExportedCommands ---------- -------- ---- ---- 脚本 21.1.18218 SqlServer {Add-SqlAvailabilityDatabase, Add-SqlAvailabilityGroupListen…</p>

错误消息 Invoke-Sqlcmd:不支持关键字:“身份验证”。在 line:1 char:1 + Invoke-Sqlcmd -ConnectionString $ConnectionString -Query $query -Quer ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidResult: ( :) [Invoke-Sqlcmd],ArgumentException + FullyQualifiedErrorId:ExecutionFailed,Microsoft.SqlServer.Management.PowerShell.GetScriptCommand

$Error[0].Exception.ToString() 输出 System.ArgumentException:不支持关键字:“身份验证”。在 System.Data.Common.DbConnectionOptions.ParseInternal(字典2 parsetable, String connectionString, Boolean buildChain, DictionarySystem.Data.Common.DbConnectionOptions..ctor(String connectionString, Dictionary`2 同义词) 在 System.Data.SqlClient.SqlConnectionString..ctor(String connectionString) 在 System.Data.SqlClient.SqlConnectionFactory 的 2 个同义词,布尔 firstKey)。 CreateConnectionOptions(String connectionString, DbConnectionOptions previous) at System.Data.ProviderBase.DbConnectionFactory.GetConnectionPoolGroup(DbConnectionPoolKey key, DbConnectionPoolGroupOptions poolOptions, DbConnectionOptions& userConnectionOptions) at System.Data.SqlClient.SqlConnection.ConnectionString_Set(DbConnectionPoolKey key) at System.Data.SqlClient.SqlConnection Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor 的 System.Data.SqlClient.SqlConnection..ctor(String connectionString) 的 .set_ConnectionString(String value)。CreateSqlConnection() 在 Microsoft.SqlServer.Management.PowerShell.ExecutionProcessor..ctor(GetScriptCommand sqlCmdCmdLet) 在 Microsoft.SqlServer.Management.PowerShell.GetScriptCommand.ProcessRecord()

0 投票
0 回答
387 浏览

sql - Powershell Invoke-Sqlcmd 字符串输出

我正在从 SQL 服务器查询数据。

从查询中获取输出:

输出:

问题:

我想问一下,如果有人知道为什么我的字符串中总是有空格吗?我真的必须使用 trim() 之类的:Write-Host "asd"$user.Status.trim()"asdad"对于我从Invoke-Sqlcmd. 如果我的项目有 2000 行怎么办?请问有没有什么技巧可以从没有空格的SQL中获取字符串?

0 投票
0 回答
55 浏览

powershell - 如何阻止 Invoke-Sqlcmd 截断查询

我们的一张表在特定列中有非常长的记录。这些查询很少使用,但是是必要的。

我一直在 bash 中使用 sqlcmd 实用程序,如下所示:

-y 0作为这里的技巧,它允许我在不被截断的情况下获取我的文本。

所以现在我需要将其转换为 PowerShell。

但遗憾的是,我的输出仅限于:

我也尝试过使用MaxCharLengthMaxBinaryLength但无济于事。

到目前为止,我还没有找到防止它截断输出的方法。

另请注意,它不尊重我的 sqlcmd 命令,例如:setvar. 解决这个问题的一种方法,-y真正做的(我认为)可能是将 设置SQLCMDMAXVARTYPEWIDTH为 0。但我找不到在使用Invoke-SqlCmd.

非常感谢任何帮助!

0 投票
1 回答
245 浏览

sql-server - 循环中调用-Sqlcmd错误,一次没有错误?

如果我运行这个 .ps1 脚本-

我在控制台上得到以下信息,没有错误 -

但是,如果我在更大的脚本中的 for 循环中尝试相同的查询 -

我得到正确的查询结果,但在控制台上出现错误 -

为什么在循环中运行它而不是运行一次时会出现错误?另外,即使我收到错误,为什么查询仍然有效?我想我错过了任何帮助将不胜感激!

0 投票
1 回答
285 浏览

powershell - 使用 Get-AzureStorageFileContent 从 Azure 存储文件共享执行 SQL 脚本

我正在使用 Invoke-Sqlcmd 从 Azure 存储文件共享中获取 -InputFile。我正在使用 Get-AzureStorageFileContent 从 Azure 存储中获取文件,但出现以下错误。任何帮助或见解表示赞赏。

Get-AzureStorageFileContent :远程服务器返回错误:(404)未找到。HTTP 状态代码:404 - HTTP 错误消息:指定的资源不存在。在行:35 字符:1

下面是 Powershell 脚本:

0 投票
2 回答
62 浏览

tsql - 从字符串转换日期和/或时间时,SQLCMD 给出转换失败

这个问题的重要部分是 Sqlcmd 的使用。简单地说,我试图弄清楚如何在我的脚本中使用日期/时间,而文档对此很清楚。

我尝试了几种日期格式、转换和转换等。

有人有想法吗?

给出错误: Conversion failed when converting date and/or time from character string.

编辑:

我认为这与 sqlcmd 而不是格式有关。

这有效:

这有效:

但是使用Setvar它不起作用

我也不关心 datetme 的格式,所以如果需要我可以更改它。

0 投票
1 回答
165 浏览

powershell - PowerShell : - 无法索引到空数组。使用来自 Invoke-SqlCmd 的数据集

我面临以下脚本的问题。这是我想用来监视应用程序的某些作业的脚本。我使用调用 sqlcmd 来加载数据集。如果选择查询以 atlast 1 行返回,所有这些都可以正常工作。

如果没有结果(通常是这种情况),那么我会收到错误消息:

当涉及到第一个 if 语句时,它失败了。我对 powershell 比较陌生,我尝试结合 Invoke Sqlcmd 找到这个问题并获得结果 -AS 数据集,但是我找不到,或者无法理解如何处理这个问题。

有人有想法吗?将不胜感激。