Вам необходимо использовать вычисленные свойства с Select-Object
, как описано в этом ответе :
Re 1 , преобразование Type
значения свойств для строк ([string]
):
$GetFiles |
Select-Object -Property Name, @{ Name='Type'; Expression = { [string] $_.Type } }
Re 2 , добавление столбца RowInsertedDate
с отметкой времени и столбца LoadStatus
с фиксированное значение 'Started'
:
$timestamp = Get-Date
$GetFiles |
Select-Object Name,
@{ Name='Type'; Expression = { $_.Type.ToString() } },
@{ Name='RowInsertedDate'; Expression = { $timestamp } },
@{ Name='LoadStatus'; Expression = { 'Started' } }
Примечание: позиционные аргументы неявно связываются с параметром -Property
.
Re 3 , сначала обрезая целевую таблицу:
Я не могу лично это проверить, но я полагаю, что вам нужно использовать командлет Invoke-SqlCmd
с
U- SQL TRUNCATE TABLE
оператор (так как вы используете Azure озеро данных).
Что-то вроде следующих строк - очевидно, следует соблюдать осторожность , потому что усечение необратимо :
# UNTESTED. Note that TRUNCATE is IRREVERSIBLE.
Invoke-SqlCmd -Query "TRUNCATE TABLE $SQLSchema.$SQLTable" `
-ServerInstance $SQLServer -Database $SQLDatabase -Credential $SQLCredential -Force