从 powershell 运行 SQL 脚本文件

2024-02-28

我正在尝试从 PowerShell 运行存储在文本文件中的查询。我使用以下方法来做到这一点;

Invoke-Expression 'sqlcmd -d TestDB -U $user -P $pw -i "E:\SQLQuery1.sql"'

如果在执行查询时发生错误或异常.sql文件,如何在我的 Powershell 脚本中捕获该文件?如何获取脚本输出?

注意:我无法使用invoke-sqlcmd


回答问题

如果执行 .sql 文件时发生一些错误或异常,如何将其放入我的 PowerShell 脚本中?我如何获得脚本输出?”

Invoke-Expression返回执行表达式的输出。然而,它可能只捕获STDOUT, not STDERR(我没有测试过,因为我不使用这种方法),所以你可能不会得到实际的错误消息。

来自帮助:

Invoke-Expression cmdlet 将指定的字符串作为命令求值或运行,并返回表达式或命令的结果

更好的途径是使用您已有的 PowerShell 方法 -Invoke-SQLCmd如果您安装了任何 SQL Server 2008(或更高版本)组件/工具(如 SSMS),则会安装。如果您有 SQL Server 2012,则非常简单:import-module sqlps。对于 2008 年,您需要添加一个管理单元,add-pssnapin SqlServerCmdletSnapin。既然你已经sqlcmd.exe,PowerShell 组件应该已经存在。

如果一切都失败了,请转到System.Data.SQLClient route:

$Conn=New-Object System.Data.SQLClient.SQLConnection "Server=YOURSERVER;Database=TestDB;User Id=$user;password=$pw";
$Conn.Open();
$DataCmd = New-Object System.Data.SqlClient.SqlCommand;
$MyQuery = get-content "e:\SQLQuery1.sql";
$DataCmd.CommandText = $MyQuery;
$DataCmd.Connection = $Conn;
$DAadapter = New-Object System.Data.SqlClient.SqlDataAdapter;
$DAadapter.SelectCommand = $DataCmd;
$DTable = New-Object System.Data.DataTable;
$DAadapter.Fill($DTable)|Out-Null;
$Conn.Close();
$Conn.Dispose();
$DTable;

有了这个和Invoke-SQLCmd,你将能够使用try/catch发现并处理发生的任何错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 powershell 运行 SQL 脚本文件 的相关文章

  • 保留 PowerShell 函数返回类型

    在我的 PowerShell 脚本中 我需要使用以下签名调用 NET 方法 class CustomList System Collections Generic List
  • 无法在 Windows docker 容器中配置 ASP.NET HTTPS 端点

    在 Windows docker 容器中运行 ASP NET Core 时出现此错误 Unhandled Exception System InvalidOperationException Unable to configure HTTP
  • 如何使用 PowerShell 使用 C# DLL 中存在的类的 New-Object

    例如 我有一个 C 类 public class MyComputer PSObject public string UserName get return userName set userName value private strin
  • powershell 优雅/干净地关闭 Internet Explorer

    我想干净 优雅地关闭互联网浏览器 taskkill 会关闭它 但是当重新打开它时 它会询问您是否要重新打开上一个会话 尝试 CloseMainWindow 方法 通过向其主窗口发送关闭消息来关闭具有用户界面的进程 Get Process i
  • Powershell 设置盖子关闭操作

    我想自动设置 Windows 7 在我的工作笔记本电脑上合上盖子时所执行的操作 因为每次登录时都会通过 GPO 重置该操作 我知道我可以在批处理脚本中使用 powercfg 命令来实现此目的 powercfg setacvalueindex
  • Try Catch 在 Powershell 脚本中不起作用

    我似乎无法让这个 try catch 工作 我确信这很简单 但此刻我的大脑太煎熬了 请帮忙 param String RemoteServicesVMs VmThatThrowsError function getWinServiceSta
  • Powershell:启动进程不将参数传递给 cmd.exe

    这些是在 powershell 控制台 Windows 10 中运行的命令 username Username password Password securePassword ConvertTo SecureString password
  • 如何使用 Get-ChildItem 仅获取目录?

    我正在使用 PowerShell 2 0 我想通过管道输出某个路径的所有子目录 以下命令输出所有文件和目录 但我不知道如何过滤掉文件 Get ChildItem c mypath Recurse 我尝试过使用 Attributes获取属性
  • Powershell 调用程序集委托

    我有一个用于过程控制应用程序的 dll 程序集 我在我的内部使用 load电源外壳 script 该DLL包含我需要使用的委托类型 委托名称是 X Y Delegate 我在该 DLL 中有另一个方法 应该这样调用 Method deleg
  • 从 C# 调用时无法识别 Powershell 命令

    这是这个的延续Question https stackoverflow com questions 66280000 powershell object returns null 66280138 noredirect 1 comment1
  • 通过 PowerShell 对 TFS 构建进行排队

    TFS2012 具有一个 2010 构建控制器和一个 2010 构建代理 还有一个 2012 构建控制器和多个 2012 构建代理 我们的软件有多个版本的多个版本 构建根据约定命名 例如Foo version 1 0 和 Foo versi
  • 并行启动服务

    我有一个脚本可以检查不同服务器上的某些服务是否已启动 如果没有启动 该脚本应该启动该服务 问题是 它不会并行启动服务 而是等待每个服务启动 Code server list Get Content path D Path list of s
  • 将 Metro 应用程序固定到任务栏 Windows 10 Powershell

    以下代码将固定 Metro 应用程序以在给定 AUMID 的情况下启动 如果你改变 match Pin To Start 不幸的是 将匹配更改为 固定到任务栏 不起作用 这里发生了什么 function Pin Taskbar param
  • Powershell 添加的字符串类型的 ParameterizedProperty Chars 属性是什么?

    请注意 C gt Get Member MemberType eq ParameterizedProperty TypeName System String Name MemberType Definition Chars Paramete
  • Powershell XMLDocument保存为无BOM的UTF-8

    我构建了一个 System Xml XmlDocument 类型的 XML 对象 scheme gettype IsPublic IsSerial Name BaseType True False XmlDocument System Xm
  • 在powershell的列中处理带有换行符的CSV

    目前 我有一个系统 它创建一个像下面这样的分隔文件 在其中我模拟了偶尔出现在列中的额外换行符 列 1 列 2 列 3 列 4 文本1 文本2 LF 文本3 LF 文本4 CR LF 文本1 文本2 LF LF 文本3 文本4 CR LF 文
  • Powershell - 奇怪的 WSL 输出字符串编码

    今天我只是想检查我的 Windows 工作站上是否安装了特定的子系统 因此 我使用 Windows Subsystem for Linux WSL 并安装可从 Microsoft Store 获取的 Ubuntu 现在我试图找到一种方法来检
  • 如何使用 .NET 4 运行时运行 PowerShell?

    我正在更新管理一些 NET 程序集的 PowerShell 脚本 该脚本是为针对 NET 2 与 PowerShell 运行的框架版本相同 构建的程序集编写的 但现在需要使用 NET 4 程序集以及 NET 2 程序集 由于 NET 4 支
  • launch.json 中不允许使用属性 env [VSCode]

    我所做的就是在 VS 中初始化一个模板 Azure Functions 项目 当我尝试通过设置运行配置环境变量时launch json VS直接警告我这是不 允许的 此外 即使当我尝试运行我的 ps1无论如何 对于 env 来说 它不起作用
  • Import-Csv - 成员已存在问题

    我必须将多个 CSV 文件合并为一个文件 每个 CSV 都有一个标题 其中一列标题是相同的 理想情况下 最终文件 all out csv 必须有一个标头 我运行 PowerShell 代码 Import Csv out 1 result c

随机推荐

  • SQL Azure 和 Azure 表存储如何比较? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何检查 Ubuntu 上是否正在运行一个我不知道名称的服务

    我不知道该服务的名称 但想通过检查其状态来停止该服务 例如 如果我想检查是否PostgreSQL http en wikipedia org wiki PostgreSQL服务是否正在运行 但我不知道服务的名称 那么如何检查其状态 如果服务
  • 如何在 Swift 中分配/释放不安全指针?

    在 Beta 4 中 我的代码运行良好 var red green blue alpha UnsafePointer
  • 仅当字符串中的第 n 个字符是 R 中的特定字符时才替换它

    我正在将一系列调查导入为 csv 文件并组合成一个数据集 问题在于七个文件之一的某些变量的导入略有不同 数据集很大 我想找到一种方法来编写一个函数来运行给我带来麻烦的数据集 在某些变量中 应该有点的时候却有下划线 并非所有变量都具有相同的格
  • 在我的 Flex 应用程序中获取数据的最佳方式是什么?

    我是 Flex 开发新手 在创建新的移动项目时 它询问我是否要将其连接到某些服务器 并给了我四个选项 ColdFusion PHP Java 和 blazeDS 我一直在 java 工作 而不是 PHP 人员 我会简单地选择Java并忽略了
  • 变量未在 PHP 循环中传递/更新

    所以基本上我正在做的是创建 php 脚本 该脚本打印表格并根据表单中输入的内容更新和计算值 所以我有一个单独的 HTML 文件 其中包含表单 它传递 3 个变量 tempStart tempEnd windSpeed 然后我创建了一个在表的
  • 在 Eclipse 帮助中搜索 RCP 未返回任何结果

    我有一个 RCP 应用程序 并在菜单上启用了帮助 我能够成功调出我创建的帮助 但是 当我输入搜索词时 没有返回结果 需要什么才能从 Eclipse 帮助引擎搜索我的帮助内容 解决方案是使用帮助内容更新插件的版本号以重建索引 我依赖 qual
  • VS2010 构建后事件,替换文件中的字符串。电源外壳?

    在 VS2010 中成功构建后 我需要替换缩小的 js 文件中的简单字符串 因此 我尝试从 构建后事件 窗口运行一个简单的命令行调用 这个例子 来自这里 https blogs technet com b heyscriptingguy a
  • Polymer 中的横向通信

    问题是这样的 任何两个聚合物元素都可能需要通信 没有假设这些元素可能位于 DOM 或影子 DOM 中的位置 这意味着一个事件不能简单地冒泡到另一个元素 实现这一点的好旧方法是让事件冒泡到根节点 然后触发播送根节点上的事件供其他元素监听 然而
  • 如何在sklearn中找到多个节点的最近邻居?

    所以基本上我正在开发一个推荐系统 其中用户可以选择多个电影 节点 并给出与用户选择的所有电影 节点 相似的推荐 为了做到这一点 我需要同时找到这些多个节点的最近邻居 即结果应该接近node1 and node2 我怎样才能做到这一点 X 0
  • 构建规则中的 Bazel 环境变量

    我想参考 DirectX SDKBUILD文件 问题是 据我所知 Bazel 仅支持通过 action env DXSDK DIRBazel 的参数 它应该在动作中使用 必须在插件中定义 bzl file 有没有更简单的方法通过将环境变量用
  • 如何从给定索引列表的 std::vector 中删除项目

    我有一个项目向量items 以及应该从中删除的索引向量items std vector
  • GIDSignIn 钥匙串错误 iOS 10 Xcode 8

    在 iOS 10 和 xcode 8 中 当我尝试登录 google 服务时 我得到 钥匙串错误 func sign signIn GIDSignIn didSignInFor user GIDGoogleUser withError er
  • 从 jQuery UI 对话框内部的元素关闭它?

    这是一个简单的问题 可能比我想象的要简单 我正在使用 ajax 调用生成的 html 填充 jQuery UI 对话框 在某些情况下 html 包含一个按钮 单击该按钮时 我想关闭包含的对话框 假设我对指定为对话框的元素一无所知 eleme
  • 从 Drools 6 中的数据库加载和更新规则

    如何在启动时从数据库表加载规则并从 Drools 6 2 0 中的同一个表更新它们 我找到了一个example http sujitpal blogspot com 2013 03 jboss rules in database take
  • 如何在 Mac 上从 ifconfig 获取格式为“接口:IP 地址”的输出

    我试图从 ifconfig 中获取以下格式化输出 en0 10 52 30 105 en1 10 52 164 63 我至少能够弄清楚如何使用以下命令获取 IP 地址 淘汰 localhost 但这不足以满足我的要求 ifconfig gr
  • JSON @属性

    我很难理解如何读取包含 attributes 的 JSON 对象 JavaScript ajax type GET dataType json url http script weather php r req success functi
  • 如何使用正则表达式过滤字符串中不需要的字符?

    基本上 我想知道是否有一个方便的类或方法来过滤字符串中不需要的字符 该方法的输出应该是 已清理 的字符串 IE String dirtyString This contains spaces which are not allowed St
  • 如何从 Pl/SQL 写入文本文件,PLS 错误 00363

    我正在尝试从过程写入文件 out File Utl File FOpen C test batotest txt W Utl File Put Line out file Hi this is text file Utl File FClo
  • 从 powershell 运行 SQL 脚本文件

    我正在尝试从 PowerShell 运行存储在文本文件中的查询 我使用以下方法来做到这一点 Invoke Expression sqlcmd d TestDB U user P pw i E SQLQuery1 sql 如果在执行查询时发生