【问题标题】:Powershell Output SQL results to another SQL DatabasePowershell 将 SQL 结果输出到另一个 SQL 数据库
【发布时间】:2018-03-11 11:38:19
【问题描述】:

到目前为止,我已经使用 export-csv 完成此操作,然后将 csv 读回另一个 SQL DB,但数据不一样,它被清除了它的列类型和位类型(1 或 0) ) 在另一个数据库中最终为真或假

是否有一种简单的方法可以在一个 SQL 服务器上发出 select 语句,并将结果写入另一个 SQL 服务器,我需要根据 select 语句的结果在第二个新服务器上创建表。

我希望这是有道理的。

$Global:SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter($Global:SqlCmd)
$Global:filename = "$cfgdir\$svr-$db-$date.csv"
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet) >$null| Out-Null
$DataSet.Tables[0] | export-csv $Global:filename -NoTypeInformation

如果可能的话,我宁愿将数据直接导入另一个数据库,而不是将数据导出到 csv。

【问题讨论】:

  • 为什么这个标签同时带有 MySQL 和 SQL Server 的标签?您是否在不同的数据库产品之间移动数据?
  • 为什么不在每个 SQL Server 之间使用链接服务器?使用 PowerShell 需要先从一个源中提取它,然后才能将其放到目标中。
  • 因为端SQL服务器属于不同的业务,不允许链接。我们必须手动收集。我试图让收集和整合数据变得更容易,而不是连接到每个服务器,运行命令并保存到 csv。到目前为止,我可以遍历每个服务器并将查询输出到每个服务器的 .csv 文件。但最终希望将数据整合到我们自己的 SQL DB 中以便于使用。

标签: sql sql-server powershell export-to-csv


【解决方案1】:

您是否尝试过使用SqlServer Powershell module?它有 2 个可能有帮助的 cmdlet,Read-SqlTableData 和 Write-SqlTableData。如果您在 2 个 SQL Server 数据库之间进行传输,那么我将从那里开始。如果是大量数据,那么使用bcp 可以更有效地执行此操作。

【讨论】:

  • 这个怎么用? powershell 脚本无法识别 Write-SqlTableData
  • 这要求您至少安装了 Powershell 5 和 SqlServer 模块。说明可以在这里找到:docs.microsoft.com/en-us/sql/ssms/download-sql-server-ps-module
  • 我需要它在许多用户可能没有任何 powershell 经验的机器上工作,安装模块可能是一个很大的障碍。
  • 我需要它在许多用户可能没有任何 PS 经验的机器上工作,安装模块可能是个大问题。我在网上搜索,但仍然不足。我们有几个 select 语句,我们需要将该 select 语句的结果推送到另一个 SQL 服务器,并创建表以匹配 select 语句的输出。我现在拥有它的方式,创建了一个 CSV 并且所有 flds 都是 genrl 字段,然后在 SQL 中创建具有匹配标题的表,然后将数据 cpied 到 tble 中,但是所有字段都是 varchar,我需要 cpy 字段类型也是。
  • 所以这些数据库驻留在客户端系统本身?客户端必须是运行它的那个?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-21
  • 2017-12-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
相关资源
最近更新 更多