Согласно моему тесту, мы не можем использовать команду Write-SqlTableData
для импорта файла CSV в Azure SQL, и мы просто можем использовать его для импорта файла CSV в локальный SQL
Поэтому, если вы хотите импортировать CSV-файл в Azure SQL с помощью powershell, вы можете использовать команду Invoke-SQLCmd
для вставки записи по одной. Например:
$Database = ''
$Server = '.database.windows.net'
$UserName = ''
$Password = ''
$CSVFileName = ''
$text = "CREATE TABLE [dbo].[Colors2](
[id] [int] NULL,
[value] [nvarchar](30) NULL
) "
Invoke-SQLCmd -ServerInstance $Server -Database $Database -Username $UserName -Password $Password -Query $text
$CSVImport = Import-CSV -Path $CSVFileName
ForEach ($CSVLine in $CSVImport){
$Id =[int] $CSVLine.Id
$Vaule=$CSVLine.value
$SQLInsert = "INSERT INTO [dbo].[Colors2] (id, value)
VALUES('$Id', '$Vaule');"
Invoke-SQLCmd -ServerInstance $Server -Database $Database -Username $UserName -Password $Password -Query $SQLInsert
}
Invoke-SQLCmd -ServerInstance $Server -Database $Database -Username $UserName -Password $Password -Query "select * from [dbo].[Colors2]"
Кроме того, вы также можете использовать другие способы (например, BULK INSERT) для его реализации. Для получения дополнительной информации, пожалуйста, обратитесь к https://docs.microsoft.com/en-us/sql/relational-databases/import-export/import-data-from-excel-to-sql?view=azuresqldb-current.