使用 powershell 在 sql server 中创建包含记录的表:什么是最好的?

发布于 2024-11-02 13:49:08 字数 576 浏览 1 评论 0原文

我需要从来自 select-object 的 powershell 对象数组开始在 sql server 数据库上创建并填充一个表。我需要创建具有正确数据类型和字段的表。

我熟知的一种方法是 export-csv,然后使用 BULK INSERTinvoke-sqlcmd,但我更喜欢跳过 csv 导出。

通常如何使用 invoke-sqlcmd 创建/填充从哈希表数组开始的表? 您是否知道在不使用 invoke-sqlcmd 的情况下完成相同工作的其他方法?我需要使用 System.Data 吗?怎样做?

谢谢

编辑1:另一种可能的方法是New-Object System.Data.SqlClient.SqlConnection,通过它我可以为每个数组元素ExecuteNonQuery()

编辑2:另一个始终基于System.Data的选项是更新SqlDataAdapter实例。

I need to create and populate a table on sql server db starting from a powershell array of objects coming from select-object. I need to create the table with the correct datatypes and fields.

One way that I well know is export-csv and then invoke-sqlcmd with BULK INSERT, but I prefer to skip csv export.

How invoke-sqlcmd is normally used to create/populate a table starting from array of hash tables?
Do you know other ways doing the same job without using invoke-sqlcmd? Do I need to use System.Data? How to?

Thanks

EDIT 1: Another possible way is New-Object System.Data.SqlClient.SqlConnection by which I could ExecuteNonQuery() for each array element.

EDIT 2: Another option, always based on System.Data, is update a SqlDataAdapter instance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

妳是的陽光 2024-11-09 13:49:08

我为脚本专家写了一篇博客文章,其中涵盖了这样的场景

http://blogs.technet.com/b/heyscriptingguy/archive/2010/11/01/use-powershell-to-collect- server-data-and-write-to-sql.aspx

使用博客文章中演示的代码,您可以使用任何 PowerShell 命令创建一个 System.DataTable,然后创建一个 SQL Server 表,最后将 DataTable 插入到新创建的表。这是一个例子

$dt = get-psdrive | out-datatable
Add-SqlTable -ServerInstance "Z003\R2" -Database dbutility -TableName psdrive -DataTable $dt
Write-DataTable -ServerInstance "Z003\R2" -Database "dbutility" -psdrive"diskspace" -Data $dt

I wrote an blog post for the Scripting Guy that covers just such a scenario

http://blogs.technet.com/b/heyscriptingguy/archive/2010/11/01/use-powershell-to-collect-server-data-and-write-to-sql.aspx

Using the code demonstrated in the blog post you can take any PowerShell command create a System.DataTable, then create a SQL Server Table and finally insert the DataTable into the newly created table. Here's an example

$dt = get-psdrive | out-datatable
Add-SqlTable -ServerInstance "Z003\R2" -Database dbutility -TableName psdrive -DataTable $dt
Write-DataTable -ServerInstance "Z003\R2" -Database "dbutility" -psdrive"diskspace" -Data $dt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文