[英]How to import data from .csv in SQL Server using PowerShell?
我有以下場景:我使用 PowerShell 並且必須將數據從 .csv 文件導入到 SQL Server 數據庫上已創建的表中。 所以我不需要來自csv的標題行,只需寫入數據。
這是我到目前為止所做的:
#Setup for SQL Server connection
#SQL Server Name
$SQLServer = "APPLIK02\SQLEXPRESS"
#Database Name
$SQLDBName = "code-test"
#Create the SQL Connection Object
$SQLConn = New-Object System.Data.SQLClient.SQLConnection
#Create the SQL Command Object, to work with the Database
$SQLCmd = New-Object System.Data.SQLClient.SQLCommand
#Set the connection string one the SQL Connection Object
$SQLConn.ConnectionString = "Server=$SQLServer;Database=$SQLDBName; Integrated Security=SSPI"
#Open the connection
$SQLConn.Open()
#Handle the query with SQLCommand Object
$SQLCmd.CommandText = $query
#Provide the open connection to the Command Object as a property
$SQLCmd.Connection = $SQLConn
#Execute
$SQLReturn=$SQLCmd.ExecuteReader()
Import-module sqlps
$tablename = "dbo."+$name
Import-CSV .\$csvFile | ForEach-Object Invoke-Sqlcmd
-Database $SQLDBName -ServerInstance $SQLServer
#-Query "insert into $tablename VALUES ('$_.Column1','$_.Column2')"
#Close
$SQLReturn.Close()
$SQLConn.Close()
我寫了一篇關於在 PowerShell 中使用 SQL 的博客文章,因此您可以在此處閱讀更多相關信息。
如果您有可用的 SQL-PS 模塊,我們可以輕松完成此操作。 只需為您的數據庫名稱、服務器名稱和表提供值,然后運行以下命令:
$database = 'foxdeploy'
$server = '.'
$table = 'dbo.powershell_test'
Import-CSV .\yourcsv.csv | ForEach-Object {Invoke-Sqlcmd `
-Database $database -ServerInstance $server `
-Query "insert into $table VALUES ('$($_.Column1)','$($_.Column2)')"
}
為了清楚起見,請將 Column1、Column2 替換為 CSV 中列的名稱。
請確保您的 CSV 具有與您的 SQL DB 格式相同的值,否則您可能會遇到錯誤。
運行時,您將看不到任何輸出到控制台。 我建議事后查詢以確保您的值被接受。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.