问题标签 [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 - 为什么我的 PowerShell Invoke-SQLCMD InputFile 出现错误?
我正在尝试从 PowerShell 脚本调用 SQLCMD,但 Powershell 似乎不喜欢我如何将 -InputFile 传递给 Invoke-Sqlcmd。我的代码看起来像这样:
$files 永远不会为空,因为打印 $files[0].FullName 会输出类似“D:\foo\foo.sql”的字符串。当我的应用程序到达这一行时,它会抛出一个错误,指向我使用 Invoke-Sqlcmd 和“$files”中的“$”字符的同一行。
我收到这两条错误消息:
我如何提供要运行的脚本的文件路径有问题吗?什么是正确的格式。我也尝试使用 .PSPath 而不是 .FullName 但我收到一条错误消息,指出不支持文件路径。
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 语句可以正常工作:
出了什么问题?
powershell - 如何在 PowerShell 中仅捕获 SQL 超时错误?
我试图在 PowerShell 5.1 的脚本中仅捕获超时错误。错误打印出执行超时,但是当我打印出错误名称时,它会返回[Microsoft.SqlServer.Management.PowerShell.SqlPowerShellSqlExecutionException]
. 这会捕获超时错误,但也会捕获其他错误。有没有办法只指定超时错误?
没有错误catch
Invoke-Sqlcmd:执行超时已过期。在操作完成之前超时时间已过或服务器没有响应。
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, Dictionary
System.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()
sql - Powershell Invoke-Sqlcmd 字符串输出
我正在从 SQL 服务器查询数据。
从查询中获取输出:
输出:
问题:
我想问一下,如果有人知道为什么我的字符串中总是有空格吗?我真的必须使用 trim() 之类的:Write-Host "asd"$user.Status.trim()"asdad"
对于我从Invoke-Sqlcmd
. 如果我的项目有 2000 行怎么办?请问有没有什么技巧可以从没有空格的SQL中获取字符串?
powershell - 如何阻止 Invoke-Sqlcmd 截断查询
我们的一张表在特定列中有非常长的记录。这些查询很少使用,但是是必要的。
我一直在 bash 中使用 sqlcmd 实用程序,如下所示:
-y 0
作为这里的技巧,它允许我在不被截断的情况下获取我的文本。
所以现在我需要将其转换为 PowerShell。
但遗憾的是,我的输出仅限于:
我也尝试过使用MaxCharLength
,MaxBinaryLength
但无济于事。
到目前为止,我还没有找到防止它截断输出的方法。
另请注意,它不尊重我的 sqlcmd 命令,例如:setvar
. 解决这个问题的一种方法,-y
真正做的(我认为)可能是将 设置SQLCMDMAXVARTYPEWIDTH
为 0。但我找不到在使用Invoke-SqlCmd
.
非常感谢任何帮助!
sql-server - 循环中调用-Sqlcmd错误,一次没有错误?
如果我运行这个 .ps1 脚本-
我在控制台上得到以下信息,没有错误 -
但是,如果我在更大的脚本中的 for 循环中尝试相同的查询 -
我得到正确的查询结果,但在控制台上出现错误 -
为什么在循环中运行它而不是运行一次时会出现错误?另外,即使我收到错误,为什么查询仍然有效?我想我错过了任何帮助将不胜感激!
powershell - 使用 Get-AzureStorageFileContent 从 Azure 存储文件共享执行 SQL 脚本
我正在使用 Invoke-Sqlcmd 从 Azure 存储文件共享中获取 -InputFile。我正在使用 Get-AzureStorageFileContent 从 Azure 存储中获取文件,但出现以下错误。任何帮助或见解表示赞赏。
Get-AzureStorageFileContent :远程服务器返回错误:(404)未找到。HTTP 状态代码:404 - HTTP 错误消息:指定的资源不存在。在行:35 字符:1
下面是 Powershell 脚本:
tsql - 从字符串转换日期和/或时间时,SQLCMD 给出转换失败
这个问题的重要部分是 Sqlcmd 的使用。简单地说,我试图弄清楚如何在我的脚本中使用日期/时间,而文档对此很清楚。
我尝试了几种日期格式、转换和转换等。
有人有想法吗?
给出错误:
Conversion failed when converting date and/or time from character string.
编辑:
我认为这与 sqlcmd 而不是格式有关。
这有效:
这有效:
但是使用Setvar它不起作用
我也不关心 datetme 的格式,所以如果需要我可以更改它。
powershell - PowerShell : - 无法索引到空数组。使用来自 Invoke-SqlCmd 的数据集
我面临以下脚本的问题。这是我想用来监视应用程序的某些作业的脚本。我使用调用 sqlcmd 来加载数据集。如果选择查询以 atlast 1 行返回,所有这些都可以正常工作。
如果没有结果(通常是这种情况),那么我会收到错误消息:
当涉及到第一个 if 语句时,它失败了。我对 powershell 比较陌生,我尝试结合 Invoke Sqlcmd 找到这个问题并获得结果 -AS 数据集,但是我找不到,或者无法理解如何处理这个问题。
有人有想法吗?将不胜感激。