构建批量插入语句powershell到sql

2023-12-24

我有一个 powershell 脚本,它从特定目录开始递归地写入每个文件及其属性。这可行,但目录可能包含多达 1,000,000 个文件。我想要做的是以每个事务 1000 次插入的方式对它们进行批处理。 PS原图如下:

$server = ""
$Database = ""
$Path = "C:\Test"

$Connection = New-Object System.Data.SQLClient.SQLConnection
$Connection.ConnectionString = "server='$Server';database='$Database';trusted_connection=true;"
$Connection.Open()
$Command = New-Object System.Data.SQLClient.SQLCommand
$Command.Connection = $Connection

foreach($file in Get-ChildItem -Verbose -Recurse -Path $Path | Select-Object  Name,Length,Mode,  Directory,CreationTime, LastAccessTime, LastWriteTime) {
    $fileName = $file.Name
    $fileSize = ([int]$file.Length)
    $fileMode = $file.Mode
    $fileDirectory = $file.Directory
    $fileCreationTime = [datetime]$file.CreationTime
    $fileLastAccessTime = [datetime]$file.LastAccessTime
    $fileLastWriteTime = [datetime]$file.LastWriteTime

    $sql =  "
                begin 
                    insert TestPowerShell
                    select '$fileName', '$fileSize', '$fileMode', '$fileDirectory', '$fileCreationTime', '$fileLastAccessTime', '$fileLastWriteTime'
                end
            " 
    $Command.CommandText = $sql
    echo $sql
    $Command.ExecuteNonQuery()
}

$Connection.Close()

我的想法是实现某种计数器,它将不断追加插入,直到达到 1000,然后跳出循环并执行。我无法弄清楚当前的设置如何以 1000 进行批处理、执行然后使用 get-childitem 循环进行恢复。


像这样的事情应该做:

function Execute-SqlQuery($query){
    Write-Host "Executing query:" 
    Write-Host $query;
}

$data = @(1,2,3,4,5,6,7,8,9,10,11);
$batchSize = 2;
$counter = 0;
$sql = "";

foreach($item in $data){

    if($counter -eq $batchSize){
        Execute-SqlQuery $sql;
        $counter = 0;
        $sql = "";
    }

    $sql += "insert into myTable(id) values($item) `n";
    $counter += 1;    
}

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

构建批量插入语句powershell到sql 的相关文章

  • 什么是动态 SQL 查询?何时需要使用动态 SQL 查询?

    什么是动态 SQL 查询 何时需要使用动态 SQL 查询 我正在使用 SQL Server 2005 这里有几篇文章 动态SQL简介 http www sqlteam com article introduction to dynamic
  • 从 Presto 中的 JSON 列获取特定值

    我有一个带有 JSON 列的表points其中一行为 0 0 2 1 1 2 2 0 5 15 1 2 20 0 7 我想获取键的值 1 and 20 并将它们存储为别名 例如first and second在查询中 到目前为止我所做的是
  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • 使用显式创建表语句与 select into 创建表

    使用显式创建表语句和加载数据与选择数据之间是否存在性能差异 此示例仅显示 2 列 但问题是针对使用非常大的表 下面的示例也使用临时表 尽管我也想知道使用常规表的效果 我认为无论表格类型如何 它们都是相同的 临时表场景 Explicitly
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • 重新启动后无法远程或本地连接到 SQL Server

    上周末进行一些网络维护后 我们的开发服务器出现了一些问题 导致我们重新启动它 重新启动期间安装了一些更新 这可能是也可能不是一个因素 从那时起 我们就无法连接到 SQL Server 2005 即使是通过 Management Studio
  • Java 和 SQL Server 中的精度噩梦

    我一直在与 Java 和 SQL Server 中的精确噩梦作斗争 直到我不再知道了 就我个人而言 我理解这个问题及其根本原因 但向地球另一端的客户解释这一点是不可行的 至少对我来说 情况是这样的 我在 SQL Server 中有两列 Qt
  • 如何使用多个字符的字符串在 PowerShell 中“拆分”字符串?

    当在 PowerShell 中的字符串上使用 Split 运算符并尝试使用包含多个字符的字符串进行拆分时 PowerShell 会表现出奇怪的行为 它使用any字符串中要分割的字符数 例如 PS C Users username gt On
  • 从头开始构建 OLAP 解决方案时应该注意什么?

    我在一家运行基于 MS SQL 数据库服务器的软件产品的公司工作 多年来我已经用 PHP 开发了 20 30 个相当高级的报告 直接从数据库获取数据 这非常成功 人们对此感到高兴 但它有一些缺点 对于新的变化 它可能是相当开发密集型的 用户
  • 内连接 3 个表

    我正在使用 PHP 和 PDO 我需要重新收集连接 3 个表的信息 photos albums 相册照片 该表具有以下结构 photos photo id int path varchar nick varchar date timesta
  • value >= all(select v2 ...) 产生与 value = (select max(v2) ...) 不同的结果

    Here https stackoverflow com questions 17026651 query from union of joins 17027784 noredirect 1 comment24611997 17027784
  • 迁移问题:MS SQL > MySQL:插入缓冲区内存

    我在使用 MySQL Workbench 上的内置迁移工具时遇到问题 我正在将一个非常大的数据库从 MS SQL 2014 迁移到 MySQL MS SQL 服务器本地部署在我的 Windows 8 1 桌面上 MySQL 服务器在我的网络
  • 我们可以使用sql列出MS Access数据库中的所有表吗?

    我们可以使用 sql 找到 ms access 中的所有表吗 就像我们在 sql server 中所做的那样 select from sys tables 在sqlite中 SELECT FROM sqlite master where t
  • SQLite 使用循环重新编号 ID

    您好 我有一个包含许多插入行的表 我需要按 id 对所有行重新编号并排序 我找到了这段代码 但它对我不起作用 SET i 100 UPDATE main Categories SET ID i i 1 WHERE Name White AL
  • 在powershell中,如何获得用于调用函数的确切原始命令?

    有什么东西在 MyInvocation是这样的吗 或者有什么办法可以提取出来 我想要函数调用中用于参数的原始文本 使用时有一些注意事项 myinvocation line or myinvocation position 如果您将命令的调用
  • 使用 WebClient 在 PowerShell 脚本中将 FTP 从二进制更改为 ascii

    简单的 PowerShell 脚本 它可以毫无问题地下载文件 二进制 我需要它的ascii 格式 File c temp ftpfile txt ftp ftp myusername email protected cdn cgi l em
  • PostgreSQL WHERE 计数条件

    我在 PostgreSQL 中有以下查询 SELECT COUNT a log id AS overall count FROM Log as a License as b WHERE a license id 7 AND a licens
  • 如何安全地使用保留的 SQL 名称?

    我正在使用 Cakephp 3 使用 sqlserver 作为数据源服务器 我确信我的数据库连接没有问题 因为 home ctp 提示我已连接到我的数据库 并且我还使用迁移插件来创建我的表 似乎使用它没有问题这些工具 但是在我烘焙 MVC
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN
  • 在 Oracle 中如何将多行组合成逗号分隔的列表? [复制]

    这个问题在这里已经有答案了 我有一个简单的查询 select from countries 结果如下 country name Albania Andorra Antigua 我想在一行中返回结果 如下所示 Albania Andorra

随机推荐

  • 应用程序 onCreate 在 Activity onCreate 之后调用(未调用)

    在崩溃日志中 我发现了非常奇怪的应用程序错误 该错误发生在 Android 7 0 8 0 上 对于一些少量用户来说 但非常频繁 我无法重现该问题 这里的代码反映了当前应用程序的状态 我有一个对我的应用程序类的静态引用 public cla
  • 防止delayed_job后台作业在单个服务器上消耗过多的CPU

    我的 Rails 应用程序有许多任务被卸载到后台进程中 例如调整图像大小和上传到 S3 我在用着延迟作业 http github com collectiveidea delayed job tree master来管理这些流程 这些过程
  • Java:观察目录以移动大文件

    我一直在编写一个程序来监视目录 当在其中创建文件时 它会更改名称并将它们移动到新目录 在我的第一个实现中 我使用了 Java 的 Watch Service API 当我测试 1kb 文件时 它运行良好 出现的问题是 实际上创建的文件大小在
  • 如何在新行而不是主行中呈现 CKEditor5 工具栏按钮?

    我从源代码将 CKEditor5 集成到我的 create React 应用程序中 现在 我想在工具栏的新行中渲染溢出的按钮 但它们显示在单独的菜单项中 如何在新行而不是主行中显示按钮 这是我的配置 ClassicEditor defaul
  • 无法在 git 中复制和粘贴 - macos

    有谁知道如何使用 macOS 复制并粘贴 git 吗 我无法在左下窗格中选择 突出显示和复制其中的文本 更改 Thanks 我可以通过按以下命令从 gitk 复制 fn C
  • 如何从 TreeNode.FullPath 数据获取实际的树节点?

    我想存储 TreeNode FullPath 中的一些数据 然后我想重新扩展到目前为止的所有内容 有简单的方法吗 多谢 您可以将其编写为扩展方法TreeNodeCollection using System using System Lin
  • 仅显示 ISO 8601 时间戳的 12 小时时间格式

    所以我想在我的 iOS 应用程序的标签中显示从服务器传递的时间 但我在尝试找出如何设置正确的 NSDateFormatter 时遇到了麻烦 例如 我以这种格式从服务器获取此时间戳 2013 02 27T18 15 00 0800 我基本上想
  • 如何获得英文版的Win32Exception?

    我正在努力得到所有Exception消息都是英文的 无论我的程序运行在什么语言上 我已经使用以下帖子中的答案设法获得了几乎所有英文异常消息 异常消息是英文的吗 https stackoverflow com questions 209133
  • Flexbox 容器中的省略号[重复]

    这个问题在这里已经有答案了 自从最新 版本的 Firefox Nightly 35 0a1 以来 我一直遇到一个问题text overflow ellipsis在 Flexbox 容器内flex direction row 每列宽 50 D
  • WebGL GLSL 片段着色器在 iOS 上不起作用

    我正在使用经典柏林噪声 vec3 函数here https gist github com patriciogonzalezvivo 670c22f3966e662d2f83 classic perlin noise 当我在 MacBook
  • Windows 8 低功耗蓝牙 API 示例

    有没有人找到关于如何使用 C C 在 Windows 8 上发现 连接和断开 BLE 设备的好示例 我不确定如何获取与 蓝牙低能耗功能 API 一起使用的设备句柄http msdn microsoft com en us library w
  • 如何在codeigniter中显示电子邮件中的图像?

    this gt load gt library upload this gt load gt library email this gt email gt set newline r n this gt email gt from emai
  • 为什么 DapperRow.GetType() 返回 null?

    据我所知 Object GetType 永远不应该返回 null 相关讨论 https stackoverflow com questions 2201007 can object gettype ever return null Dapp
  • ZF + Doctrine2 phpUnit 错误:PDOExeption:您无法序列化或反序列化 PDO 实例

    我正在使用 DynamicGuys Doctrine2 集成到 zend 框架中 https github com dynamicguy zf1doctrine2 它有效 但如果我想用 phpUnit 进行测试 我会收到此错误 PDOExe
  • 无法在异步模块中使用“map”功能

    我正在使用node js 异步 模块并且需要使用 map 方法 基本上我有一个包含其他数组的数组 内部数组包含 2 个元素 类型和图像文件名 var arr0 var arr1 type1 image1 jpg jsonArr push o
  • QListWidget中的InternalMove使项目消失

    我正在尝试在树小部件内进行拖放操作 以便能够在该小部件内移动项目 我已经设法使项目可拖动 但是当我释放鼠标按钮时 该项目就会消失 为了缩小范围 我尝试了以下示例 取自此处的另一篇文章 它与 Windows 7 上的 Qt 5 4 中的树小部
  • Automapper 自定义值解析器重用多种类型

    我有一个项目 我试图使用 AutoMapper 从多个类进行映射 每个类中都有一些属性 我想使用一些自定义逻辑将源值解析到目标 我尝试使用 AutoMapper 文档中记录的自定义解析器方法 这是我的代码 public class Cust
  • Chrome 中的同步控制台日志记录

    是否可以同步记录到控制台 我经常遇到代码执行比转储结构更快的情况 这解决了输出已更改的对象的问题 我当然可以使用调试器浏览代码 进行单元测试等 通常很方便console log只是为了大致了解正在发生的事情 您可以在将对象传递给之前创建该对
  • 将 React Element 的字符串值的一部分设为粗体

    我在我的文件中定义了变量 var text The start of string b this state isTrue Bolded Also Bolded b the end of string 该字符串被传递给 React 元素 s
  • 构建批量插入语句powershell到sql

    我有一个 powershell 脚本 它从特定目录开始递归地写入每个文件及其属性 这可行 但目录可能包含多达 1 000 000 个文件 我想要做的是以每个事务 1000 次插入的方式对它们进行批处理 PS原图如下 server Datab